Method of simulating movement of an autonomous entity through an environment

ABSTRACT

A method of simulating movement of an autonomous entity through an environment, the method comprising providing a provisional path through a model of the environment from a current location to an intended destination, providing a profile for said autonomous entity, determining a preferred step towards said intended destination based upon said profile and said provisional path, determining a personal space around said autonomous entity and determining whether said preferred step is feasible by considering whether obstructions infringe said personal space.

FIELD OF THE INVENTION

[0001] The present invention relates to a method of simulating movementof an autonomous entity through an environment, for particular but notexclusive use in a method of modelling pedestrian crowd movement.

BACKGROUND ART

[0002] A physical system may be considered as a collection of individualconstituents interacting with each other and their surroundings. Theconstituents, usually referred to as “agents”, may be characterized byseveral attributes and model of interaction.

[0003] Systems may or may not be self-contained and such systems areusually referred to as being “closed” and “open” respectively.Furthermore, if the interactions between agents are sufficientlycomplicated, then the system is said to be “complex” Moreover, if agentsare endowed with a feedback mechanism for perceiving and reacting tosignals and thus adjust their behaviour or interaction mechanisms, thenthey are said to be “adaptive”.

[0004] A system comprising many interacting agents is commonly referredto as a “multi-agent complex system”. One example of such a system is apedestrian crowd

[0005] A multi-agent complex system may be considered from two differentpoints of view Either one may consider the collective patterns thatcharacterize the system in its entirety or one may focus on interactionmechanisms at the level of each individual constituent. These approachesare referred to as “macroscopic” and “microscopic” formulationsrespectively.

[0006] It is known to use a macroscopic model to describe a pedestriancrowd as a quasi-uniform medium, such as a fluid, without regard toindividual constituents It is typically low-resolution and results inonly rough estimates of bulk measures, such as flows and densities,under certain conditions. Thus, it treats a pedestrian crowd as aquasi-uniform continuous fluid rather than interacting individuals.

[0007] Such a model is best suited to situations involving large spacesand large, uniform crowds, where there are no rapid variations inconditions, little change in the landscape and little variety in thepurpose and function of the environment. Under these conditions, amacroscopic model may provide a reasonable estimate of the densities andflows

[0008] An example of a macroscopic model is given in “Forecasting theFlow of People” by K Ando, H Ota and T. Oki, Railway Research Review,volume 45, page 8 (1988)

[0009] However, a macroscopic model is poorly suited to situationsinvolving multi-directional flows and varied pedestrian profiles, wherethere are complicated geometries, rich in structure, and where there area multitude of rapidly changing conditions. Under these conditions,macroscopic models may be misleading and lead to erroneous conclusions.

[0010] Despite this drawback, many methods of modelling pedestrianmovement, including chose used to set safety standards for buildings andspaces, use macroscopic approaches

[0011] In contrast, microscopic models address the behavior ofindividual agents

[0012] Microscopic models, such as Cellular Automata and other heuristicrule-based models, use ad-hoc parameterizations based on arbitraryprobabilistic and statistical rules. These models are higher-resolutionin that they consider individual agents and short-range variations inconditions. They also exhibit dynamic and emergent behaviorNevertheless, they have several drawbacks. They tend to rely on having ahomogeneous space and identical individuals. They are also difficult tocalibrate and validate and are also erratic and unreliable. In fact,microscopic models which which cannot be calibrated using empiricallymeasured data are of questionable utility for practical applications andpredictions. Thus, although qualitatively plausible, they are not suitedto practical applications. At best they are used for illustrativepurposes only.

[0013] Attempts have been made to formulate better microscopic modelsand an example is described in “Simulating dynamical features of escapepanic” by Dirk Helbing, Ill{acute over (v)}s Farakas and Tamás Vicsek,Nature, volume 407, pages 487 to 490 (2000). However, these models areapplied to a specific set of circumstances which allow simplification.

[0014] It is desirable to develop a method of simulating movement of anautonomous entity through an environment for use in a method ofmodelling pedestrian crowd movement which can allow for designchallenges such as non-uniform spaces, a variety of user profiles, amultitude of agent choices, dynamic changes in environment and chancesevents.

[0015] The method can be used for designing venues, troubleshooting flowproblems, operational management, setting and implementing safetystandards and quality control

SUMMARY OF THE INVENTION

[0016] The present invention seeks to provide a method of simulatingmovement of an autonomous entity through an environment.

[0017] According to the present invention there is provided a method ofsimulating movement of an autonomous entity through an environment, themethod comprising providing a provisional path through a model of theenvironment from a current location to an intended destination,providing a profile for said autonomous entity, determining a preferredstep cowards said intended destination based upon said profile and saidprovisional path, determining a personal space around said autonomousentity, determining whether said preferred step is feasible byconsidering whether obstructions infringe said personal space.

[0018] This has the advantage of providing a more accurate simulation ofmovement

[0019] If the preferred step is not feasible, then the method mayfurther comprise determining a region in which to seek a compromise stepand determining whether at least one compromise step is feasible

[0020] This has the advantage that it reduces the computational effortneeded to determine a compromise step

[0021] The method may comprise choosing one of a plurality of compromisesteps. The method may comprise determining said region includes adaptingwithin said region in dependence upon at least one locally perceivablecondition The determining of the region may include adapting within saidregion in dependence upon memory of past conditions The determining ofthe personal space may comprise defining a region in which absence ofobstructions is sought Obstructions may include other autonomousentities and fixed obstructions. The determining of the preferred stepmay comprise determining a first dissatisfaction function comprising asum of an inconvenience function and a frustration function. The methodmay comprise determining the inconvenience function. The provisionalpath may include a direction from said current location to said intendeddestination and the profile includes a preferred step length, andwherein the determining of the inconvenience function and may includedetermining a first amount of work required to take a step of given steplength and determining a second amount of work which is a proportion ofsaid first amount of work corresponding to a component which is nordirected in said optimal direction. The determining of the inconveniencefunction may include determining an acceleration associated with achange in velocity between said step and a previous step and determininga third amount of work required to produce said acceleration. Thedetermining of the inconvenience function may include summing saidsecond and third amounts of work The method may include determining thefrustration function. The profile may include a preferred walking speedand the determining of the frustration function may comprise determininga preferred instantaneous walking speed by adding said preferred walkingspeed to a value of walking speed noise and determining a fourth amountof work, dependent upon a difference between the walking speed and thepreferred instantaneous walking speed. The determining of the preferredstep may comprise minimising said first dissatisfaction in respect ofstep length, minimising said first dissatisfaction in respect of steporientation thereby to obtain a preferred step length and a preferredstep orientation. The determining whether said preferred step isfeasible may comprise determining whether there is any discomfortarising from the entity having to keep a distance which is differentfrom a preferred distance from an obstruction. The method may comprisedetermining if there is discomfort arising from the entity having tokeep a distance which is different from a preferred distance from anobstruction

[0022] The method may comprise providing a preferred clearance tolerancefor said entity; and determining a personal space around said entity independence upon said clearance tolerance. The method may comprisedetermining a density of neighbouring entities and determining saidpersonal space around said entity in dependence upon said clearancetolerance and said density of neighbouring entities. The method maycomprise providing information relating to velocity of said entity; anddetermining an angular dependency for said personal space in dependenceupon said velocity The considering whether obstructions infringe saidpersonal space may comprise determining whether said personal space isinfringed at a first position along said preferred step and determiningwhether said personal space is infringed at a second position along saidpreferred step. The considering whether obstructions infringe saidpersonal space may further comprise determining whether said personalspace is infringed at a third position along said preferred step If thepreferred step is not feasible, then the method may further comprisedetermining a region in which to seek a compromise step. The determiningof said region may comprise determining an arc and may includedetermining upper and lower angular limits and determining a radius ofsaid arc.

[0023] The method may comprise determining a set of attributes for saidautonomous entity in dependence upon said profile. The determining ofsaid set of attributes may comprise determining at least one attributeat time of generating said entity.

[0024] The method may comprise modifying at least one attribute of saidset of attributes for said autonomous entity.

[0025] According to the present invention there is provided a computerprogram for performing the method.

[0026] According to the present invention there is also provided acomputer-readable medium storing the computer program.

[0027] According to the present invention there is also providedapparatus for simulating movement of an autonomous entity through anenvironment, the apparatus comprising an interface for providing aprovisional path through a model of the environment from a currentlocation to an intended destination, an interface for providing aprofile for said autonomous entity, a processor for determining apreferred step towards said intended destination based upon said profileand said provisional path, a processor for determining a personal spacearound said autonomous entity, a processor for determining whether saidpreferred step is feasible by considering whether obstructions infringesaid personal space

[0028] According to the present invention there is also provided amethod of simulating movement of an autonomous entity through anenvironment, the method comprising providing a preferred clearancetolerance for said entity and determining a personal space around saidentity in dependence upon said clearance tolerance The personal spacemay be anisotropic.

[0029] The method may comprise determining a density of neighbouringentities and determining said personal space around said entity independence upon said clearance tolerance said density of neighbouringentities. The method may comprise providing information relating tovelocity of said entity and determining an angular dependency for saidpersonal space in dependence upon said velocity

[0030] According to the present invention there is also provided amethod of designing a building structure, the method comprisingproviding a model of said building structure, simulating movement of atleast one entity through said building structure, the simulating of saidmovement of said at least one entity comprises providing a provisionalpath through a model of the environment from a current location to anintended destination, providing a profile for said autonomous entity,determining a preferred step towards said intended destination basedupon said profile and said provisional path, determining a personalspace around said autonomous entity and determining whether saidpreferred step is feasible by considering whether obstructions infringesaid personal space and revising said model of said building structurein dependence upon movement of said at least one entity

[0031] The building structure may be a building, such as a house, officeblock or railway station, an outside space for people, such as a sportsstadium, or a mixture of both. The building structure may be a portionof a building or a portion of an outside space. The building structuremay be passenger ship or aircraft The building structure may be an openstructure which is marked, for example with arrows and lines.

[0032] According to the present invention there is also provided amethod of controlling movement of an entity through an environment, themethod comprising providing a provisional path through a model of theenvironment from a current location to an intended destination,providing a profile for said autonomous entity, determining a preferredstep towards said intended destination based upon said profile and saidprovisional path, determining a personal space around said autonomousentity, determining whether said preferred step is feasible byconsidering whether obstructions infringe said personal space.

BRIEF DESCRIPTION OF THE DRAWINGS

[0033] An embodiment of the present invention will now be described, byway of example, with reference to the accompanying drawings in which.

[0034]FIG. 1 is a plan view of a vacant venue,

[0035]FIG. 2 is a schematic diagram of a venue filled with pedestrians,

[0036]FIG. 3 is a simplified plan view of a pedestrian and his or herpath;

[0037]FIG. 4 shows a pedestrian taking a step from a previous positionto a new position;

[0038]FIG. 5 is a plot of frustration against pedestrian speed;

[0039]FIGS. 6a and 6 b show two- and three-dimensional plots ofself-dissatisfaction;

[0040]FIG. 7 is a plan view of a pedestrian approximated by an ellipse;

[0041]FIG. 8 shows equivalence, in terms of area, of an ellipse and acircle,

[0042]FIG. 9 shows an increase in effective area of a pedestrian due toluggage;

[0043]FIG. 10 shows probability distributions used to assign luggage ofrandom sizes;

[0044]FIG. 11 shows a pedestrian and another pedestrian nearby,

[0045]FIG. 12 shows plots of personal space at different pedestrianspeeds;

[0046]FIG. 13 shows determination of whether a preferred step isfeasible;

[0047]FIG. 14 a pedestrian and a fixed obstacle nearby,

[0048]FIG. 15 shows a test area around a position to which a pedestrianwould prefer to step;

[0049]FIG. 16 shows regions of a test area which are free of fixedobstacles;

[0050]FIG. 17 shows neighbouring pedestrians walking with or against apedestrian,

[0051]FIG. 18 shows a pedestrian and a sub-space in which a search ismade for a position to which the pedestrian may step;

[0052]FIG. 19 is a schematic diagram of a design apparatus;

[0053]FIG. 20 is a schematic diagram of an alternative design apparatus;

[0054]FIG. 21 shows a system architecture for a design system;

[0055]FIG. 22 is a process flow diagram for designing a venue

[0056]FIG. 23 shows a computer-aided design (CAD) plot of a corridor;

[0057]FIG. 24 shows another plot of the corridor shown in FIG. 23,

[0058]FIG. 25 illustrates a dialog box for providing model parameters;

[0059]FIG. 26 shows a magnified plot of a first end of the corridorshown in FIG. 24 with an entrance;

[0060]FIG. 27 illustrates a dialog box for providing entranceparameters,

[0061]FIG. 28a shows a pulse trail of supply of pedestrians through theentrance;

[0062]FIG. 28b illustrates a dialog box for providing pulse trainparameters,

[0063]FIG. 29 shows a magnified plot of a second end of the corridorshown in FIG. 24 with an exit;

[0064]FIG. 30 shows linking of an entrance to an exit,

[0065]FIG. 31 shows results of a simulator;

[0066]FIG. 32 shows another computer-aided design (CAD) plot of acorridor,

[0067]FIG. 33 shows a corridor divided into focal drift zones;

[0068]FIG. 34 shows a corridor divided into focal drift zone, andpreferred orientation;

[0069]FIG. 35 shows results of a simulator;

[0070]FIG. 36 is a process flow diagram for simulating movement of anautonomous entity;

[0071]FIG. 37 is a process flow diagram for initialisation and

[0072]FIG. 38 is a process flow diagram for determining whether apreferred step is feasible.

DETAILED DESCRIPTION OF THE INVENTION

[0073] A method of simulating movement of an autonomous entity throughan environment according to the present invention is described which issuitable for use modelling pedestrian crowd movement Thus, in thiscontext, the terms “agent”, “entity” and “pedestrian” may be usedinterchangeably.

[0074] Motion of a Pedestrian

[0075] Navigating from a current position to an intended destination maybe considered as involving two aspects, namely long-range, quasi-staticnavigation and short-range, dynamic navigation. These are hereinafterreferred to as “macro-navigation” and “macro-navigation” respectively

[0076] Navigation Macro-navigation

[0077] Referring to FIG. 1, a vacant venue 1 is shown as anarchitectural plan of the geometry and positions of walls 2, corridors 3and fixed obstacles 4

[0078] The walls 2, corridors 3 and fixed obstacles 4 do not changeposition over time and so they constitute static attributes of theenvironment. Static features may also include slow-moving obstacles,which are stationary over a timescale of approximately one step, i.e.quasi-static obstacles. For example, a stationary group of people may betreated as a fixed obstacle. Static features may also include moveableobstacles that are temporarily stationary, such as a barrier or doorStatic information is employed to define a compass to indicate anapparent general direction en route to the ultimate destination

[0079] A pedestrian 5 standing at a current location 6, in this case anentrance to the venue, usually aims himself or herself at an intendeddestination 7, such as an exit, by virtue of being familiar with thevenue or by consulting a map or sign. In doing so, the pedestrian 5selects a general direction of travel, which is called the “originaldirection”. The original direction may be maintained if the intendeddestination 7 is directly accessible from the current location 6.Alternatively, the original direction may be successively updatedwhenever an intermediate landmark 8 ₁, 8 ₂, 8 ₃ is reached, for examplewhen an ultimate destination 9 is invisible or inaccessible from thecurrent location 6. Thus, progress to an ultimate destination 9comprises updating the pedestrian's current location 6 and, when anintermediate intended destination 7 is reached, setting a newintermediate intended destination, for example fixed on a new landmark 8₁, 8 ₂, 8 ₃

[0080] The process of selecting a general direction on the basis oflong-range quasi-static information, such as the geometry of a venue andthe presence of large fixed obstacles, is referred to as“macro-navigation”.

[0081] Macro-navigation supplies a sequence of such intendedintermediate destinations, starting from an entrance to ending at anexit or other final destination. The sequence may be supplied all atonce, on entry to the venue, or one at a time, dynamically en route.Macro-navigation supplies au orientation angle {circumflex over (θ)}₀ toa current intermediate intended destination from any point accessiblefrom within the interior of a venue and at all times.

[0082] Macro-navigation may be “hard-wired”, implemented heuristicallyor using a sophisticated algorithm. For example, if macro-navigation is“hard-wired”, a venue is divided into zones and an intended orientationis provided for each zone An example using zones is described later.

[0083] In an embodiment of the present invention, a tough approximationof an optimal path 9 is determined using a spatial objective, i.e. theultimate intended destination, in conjunction with the geometry of thevenue 1 The rough approximation of the optimal path serves as a compassindicating an intended orientation The rough approximation of theoptimal path 9 is also referred to as a provisional path.

[0084] For example, an optimal path 9 in relation to the geometry of thevenue may be considered as a sequence of straight line segments takingthe pedestrian from an entry point, around corners and obstacles,through intermediate intended destinations 7 or decision points, to thea final destination.

[0085] Thus, macro-navigation supplies an optimal path to a lowest orderon the basis of a pedestrian's current position, intended destinationand any static or quasi-static elements of the geometry of a venueMacro-navigation does not take into account any preferences andattributes of each individual or dynamical considerations and is,therefore, subject to adjustments and corrections

[0086] Navigation, Micro-navigation

[0087] Referring to FIG. 2, the vacant venue 1 is now filled with otherpedestrians 10 and is subject to dynamic events.

[0088] A busy railway station, for example, may include large numbers ofarriving and departing pedestrians which are moving in differentdirections, waiting or queuing Planned events may occur, such asscheduled arrivals and departures of trains. Also, chance events, forexample arrival of delayed trains, may occur

[0089] The pedestrian 5 needs to modify its route to avoid otherpedestrians 10 and the process of adjusting and correcting forshort-range, dynamic interactions is referred to as “micro-navigation”This results in a codified route 9′. This is described in more detaillater

[0090] Discretisation

[0091] Referring to FIG. 3, a simplified plan view of the pedestrian 5is shown

[0092] The pedestrian 5 advances in whole steps 11, each of duration Δt.Thus, if a previous step j−1 began at time t_(j−1), then the previousstep ends and a current step j starts at t_(j)=l_(j−1)+Δl. Similarly,the current step ends and a subsequent step begins at t_(t+J)=t₁+Δt.

[0093] Walking is a complicated process Therefore, the process issimplified by making some assumptions

[0094] The effect of pedestrian “zigzagging” may be eliminated orreduced by choosing the centre of the pedestrian's head 12 to representthe position 13 of the pedestrian. This is because the pedestrian's head12 lies, on average, approximately half way between the two feet in twosuccessive steps Any residual zigzagging between steps is attributableto spurious noise or intentional changes of direction.

[0095] Variations in the walking speed may be assumed to be exclusivelydue to variations in the step length rather than variations in the stepduration

[0096] Walking is a non-linear process. Each foot is successivelyraised, then placed in contact with the ground so as to apply tractionfor locomotion. Over the course of any one step non-constant forces areexerted that result in irregular acceleration patterns and complicatedspeed dependencies. Nevertheless, uniform acceleration is assumed. Thisis a reasonable assumption provided that the duration of a step Δt iskept small. In this case, the duration of a step for an adult is set as600 ms, i.e. Δt=0.6 s.

[0097] Thus, the pedestrian 5 may be described in terms of threeindependence variables, namely: $\begin{matrix}{{\overset{\_}{r}}_{{j - 1},_{t}{j + 1}}{{\overset{\_}{v}}_{j} = \frac{{\overset{\_}{r}}_{j + 1} - {\overset{\_}{r}}_{i}}{\Delta \quad t}}{{\overset{\_}{a}}_{j} = {\frac{{\overset{\_}{v}}_{i} - {\overset{\_}{v}}_{i - 1}}{\Delta \quad t} = \frac{{\overset{\_}{r}}_{i + 1} - {2{\overset{\_}{r}}_{j}} + {\overset{\_}{r}}_{j - 1}}{\Delta \quad t^{2}}}}} & \left( {{1a},\quad {1b},\quad {1c}} \right)\end{matrix}$

[0098] where {overscore (r)} position, {overscore (v)} is velocity,{overscore (a)} is acceleration and t is time.

[0099] Thus, a series or sequence of steps, represented by line segments11 each of duration Δt, form the path 9.

[0100] Preferred Speed

[0101] An unhurried pedestrian walking on a level surface without anyobstacles in sight has a preferred walking speed v₀. Preferred walkingspeed may also be known as “natural walking gait”.

[0102] Values of preferred speed may be experimentally determined fordifferent populations in different circumstances, such as differentvenues, surfaces, inclines etc

[0103] There is a linear relationship between speed v and step length l.Thus, variations in pedestrian speed for fixed step duration may beattributed to variations in step length. Therefore, a preferred steplength l₀ may be defined as

l ₀=v₀ Δt  (2)

[0104] Step length l₀ may also be expressed as half a stride interval.

[0105] A value of preferred speed is randomly drawn from a preferredspeed continuous probability distribution This usually occurs only onceper entity when the entity is generated. However, further value ofpreferred speed may be drawn or existing values modified according tochanges in environment.

[0106] The preferred speed continuous probability distribution isincluded in a profile and is derived from a statistical analysis ofmeasured values of preferred walking speed for a large number ofpedestrians over many steps A profile includes one or more continuousdistribution functions for one or more corresponding attributes, such aspreferred speed, which characterise a particular type or “species” ofpedestrian.

[0107] To a lowest order, step length variability may be approximated bynoise or spontaneous random fluctuations Thus, fluctuations in the steplength may be represented as fluctuations in preferred speed Experimentsmay be used to measure these variations and thus determine probabilitydistributions.

[0108] Thus, a spontaneous preferred-speed noise may be defined as:

δv₀+α_(n) Δt  (3)

[0109] where α_(n) is a spontaneous value of acceleration

[0110] A value of δv₀ (or α_(n)) is drawn from a spontaneouspreferred-speed probability distribution also comprised in the profile.However, unlike preferred speed, a value of spontaneous preferred-speednoise is usually drawn once per entity per step

[0111] Micro-navigation

[0112] A macro-navigation module supplies a provisional path for takinga pedestrian from an entry point through a venue to his finaldestination. The provisional path is corrected and adjusted to accountfor individual pedestrian preferences

[0113] As explained earlier, at each point in time a pedestrian needonly know the next intermediate destination point, such as a corner orobstacle, and not necessarily the final destination which may only bedeterminable at a later decision point. It does not matter whether thefull optimal path is available from the outset or only the current legleading up to the next intermediate destination Once the lowest-orderoptimal path is available, at least up to the next intermediatedestination or decision point, pedestrians or entities invokemicro-navigation.

[0114] The micro-navigation process seeks to supply criteria, decisionmaking powers, learning and adaptation faculties that permit an entityto read signals from its surroundings, process these together with thelowest-order optimal path and the knowledge of one's own preferences andattributes so as to deduce a truly optimal path It also seeks to learnand update memory with up-to-the-moment information, project theintentions of neighbouring entities and negotiate with them andultimately execute one step so as to stay nearest the true optimal pathwhile at the same time suffering the least harm or degrading in regardto the pedestrians own well-being.

[0115] Every optimal step leading to the final destination belongs tothe optimal path. Thus, if a pedestrian has their way, as for example inthe empty railway station, the process of achieving the ultimatedestination would be accomplished by simply following the optimal path,one step at a time, at the pedestrian's preferred speed.

[0116] However, the presence of obstacles and/or other entities andimpeding external factors beyond one's control, usually render theoptimal step non-viable Thus, a compromise needs to be madeMicro-navigation is concerned with this situation and includes threestages.

[0117] In a first stage, the method comprises receiving the provisionalpath and the entity's preferences and attributes and determining apreferred step. The result of the first stage is a preferred positionfor the next step.

[0118] In a second stage, the method comprises determining a personalspace around said entity and determining whether the preferred step isfeasible. This comprises determining whether personal space around theentity is infringed by another entity or obstacle at any point duringthe preferred step This includes determining whether a projected path ofthe other entity infringes the entity's personal space. As will beexplained in more detail later, personal space is anisotropic and maydepend on a number of factors including the velocity of the entity andapparent velocity of neighboring entities.

[0119] If the preferred step is not feasible, the method includesdetermining a region in which to seek a compromise step. The result ofthe second stage is an area in proximity to the preferred position inwhich an alternative position is sought. Another result is knowledge ofthe local conditions which will facilitate more prudent decision makingin the future, as well as adjustment of the entity's own preferences,such as its preferred speed and size of its personal space.

[0120] In a third stage, the method comprises determining whether atleast one compromise step is feasible within the specified legion. Aswill be explained in more detail, this process comprises minimising afunction referred to as “full dissatisfaction” and seeking compromisesteps from the least dissatisfying to the most dissatisfying. Anysolution constitutes a compromise in that the entity no longer seeks tosatisfy his or her original preferences (as in the first stage), butrather strives for degraded, adjusted preferences obtained by the end ofthe second stage. It may include eliminating candidate solutions due tounavailability, after negotiating with neighbours by cooperating orcompeting, and evading fixed obstacles. The result of the third stage isa solution for a compromise step. Thereafter, the step may be taken.

[0121] This process is iterated, one step at a time, for each entityuntil it teaches its destination.

[0122] Micro-navigation: Stage I

[0123] Referring to FIG. 4, the pedestrian completes a step 11 ₁ from aprevious position 12, to a current position 12 ₂, i.e. from (x_(1−j),y_(J−1)) to (x_(j), y_(j)), and is about to embark on his next step 11₂.

[0124] The pedestrian's objective is to teach intended destination 7,i.e. at target coordinates (x₁, y₁). To achieve this, an orientationangle {circumflex over (θ)}₀ ^(J) is provided corresponding to thelowest-order optimal path.

[0125] In effect, the pedestrian uses this orientation angle {circumflexover (θ)}₀ ¹ as a rough compass. However, to determine a truly optimalnext step, the pedestrian's preferences are taken into account

[0126] To achieve this, a first Action function J_(S) is determined andminimised. This is executed without considering any externalimpediments. The first Action function J_(S) herein referred to as“self-dissatisfaction”. As will be explained later, another Actionfunctional J_(γ) is determined during later stages of micro-navigationwhich includes external impediments and is referred to as “fulldissatisfaction” or simply “dissatisfaction”.

[0127] The pedestrian may take the next step 11 ₂ and move to a newposition 12 ₃ within a dashed circle 14 There are two degrees of freedomrepresented by two independent variables, namely length l and directionangle θ of the next step. Polar coordinates (l,θ) are used instead ofCartesian coordinates (x,y) as a matter of convenience.

[0128] If the pedestrian considers step 11 ₂ as a candidate for the nextstep to a virtual position 12 ₃ at (x_(J+1),y_(J+1)), then he or sheexpends work against friction-like forces in traversing the path,namely:

W _(∫) ^(J) μgml ₁  (4)

[0129] where g is gravitational acceleration, m is the mass of theindividual pedestrian, μ is a coefficient of friction and l_(j) is thelength of the step actually traversed over time step j. The coefficientof friction induces the work against friction to be proportional to thesoftness or hardness; between the two surfaces of contact, namely thepedestrian's shoes and the floor. A coarse floor results in a largervalue of μ, while a polished floor results in a smaller value.

[0130] Here, “friction” is taken to encompass all possible friction-likeforces depending on the path length and the mass of the moving object.Therefore, μ can be considered more generally as a “coefficient ofdifficulty” Thus, not only is traversing a coarse floor energeticallymore costly than traversing a polished floor, i.e. “standard” friction,but also traversing an inclined floor, as opposed to a level floor, willbe energetically more expensive. The coefficient is a spatial attributewhich can be established empirically by analysing behaviour ofpedestrians on different types of floors.

[0131] If the pedestrian picks step 11 ₂ as the next step, then he orshe would end up moving in a direction different from his apparentpresent intended orientation {circumflex over (θ)}₀ ^(J) Working againstfriction so as to move the pedestrian toward the intended destination 7is acceptable, but not otherwise. Thus, a component 15 of the pathcorresponding to the step 11 ₂ along the intended direction {circumflexover (θ)}₀ ^(J), amounts to the useful path. A component ΔW_(∫) ^(j)corresponds to wasteful work, namely.

ΔW _(∫) ^(J) =μmgl ₁[1−cos(θ₁−θ₀ ^(J))]  (5)

[0132] Thus, ΔW_(∫) ^(J) may be interpreted as one component ofperceived inconvenience due to wasteful work against friction induced bydeviating from the intended direction over the course of one step

[0133] The previous and current steps 11 ₁, 11 ₂ may differ in bothlength l and angle θ These changes are caused by a force and result inacceleration For example, a force exerted parallel to the direction oftravel may cause acceleration which results in l_(J)<l_(J−1) orconversely deceleration which results in l_(J)<l_(J−1) A force exertedperpendicular to the direction of travel results in a change ofdirection from θ_(J−1) to θ_(j). Thus, equation 1c and 5 may be writtenas: $\begin{matrix}{{\overset{\_}{a}}_{j} = {\frac{1}{\Delta \quad t^{2}}\left\{ {{\left( {l,{{\cos \quad \theta_{j}} - {l_{j - 1}\cos \quad \theta_{j - 1}}}} \right)\overset{̑}{x}} + \quad {\left( {{l_{j}\sin \quad \theta_{j}} - {l_{j - 1}\quad \sin \quad \theta_{j - 1}}} \right)\overset{̑}{y}}} \right\}}} & (6) \\{{\Delta \quad W_{a}^{j}} = {{\int{{{\overset{\_}{F}}_{j} \cdot d}{\overset{\_}{s}}_{j \cdot j^{- 1}}}} = {{m{\overset{\_}{a}}_{j}^{2}{\int_{0}^{\Delta \quad t}{t\quad {t}}}}\quad = {\frac{m}{2\quad \Delta \quad t^{2}}\left\lbrack {l_{j}^{2} - {2l_{j}l_{i - 1}{\cos \left( {\theta_{j} - \theta_{j - 1}} \right)}} + l_{i = 1}^{2}} \right\rbrack}}}} & (7)\end{matrix}$

[0134] The work ΔW₁₂ ^(j) exerted during step j to produce acceleration{overscore (a)}_(J) may be considered as a second component ofinconvenicnce.

[0135] Thus, a total inconvenience, I, associated with perceptions ofwasteful effort over the course of a step may be defined as:

I(l,θ)≡c ₁(ΔW _(∫) ^(J) +ΔW _(a) ^(J))  (8)

[0136] where coefficient c₁ is a context-dependent scaling factor. Thescaling factor may be determined by fitting a model to measured data.

[0137] So far, the expended work associated with inconvenience may bethought as physical work in a traditional classical mechanical sense

[0138] However, “work” can also be expended in other ways, as we shallnow explain.

[0139] As we explained earlier, the entity has a velocity thatfluctuates about a preferred speed v₀ which is an individual attributeof each entity and subject to spontaneous fluctuations δv₁ ⁰, namely

v ₁ ⁰ =v ₀ +δv _(J) ⁰  (9)

[0140] where v₀ is the preferred cruising speed and δv_(J) ⁰ is thespontaneous speed noise for step j A value of v₀ is assigned to eachentity and is drawn from a preferred speed distribution function. Avalue of δv_(J) ⁰ is randomly drawn from a corresponding spontaneousspeed noise distribution function for each entity for each step. Thus,v₁ ⁰ is an instantaneous preferred speed of an individual pedestrianover step j.

[0141] A preferred speed, which is self-imposed, is tantamount to aconstraint. Thus, it may be classified as an effective potential energyterm, as can be shown by invoking variational techniques Here, aquadratic energy term is assigned: $\begin{matrix}{{F_{j}(l)} = {c_{f}\frac{1}{2}{m\left( {\frac{l_{j}}{\Delta \quad t} - \upsilon_{j}^{0}} \right)}^{2}}} & (10)\end{matrix}$

[0142] which has a potential minimum when l_(J)=v_(J) ⁰Δt, i.e. when thelength of the step results in an instantaneous speed equal to thepreferred cruising speed.

[0143] F_(J) is referred to as “frustration” and considered as virtual,rather than physical, work. It reflects the cost due to differencesbetween the actual instantaneous speed l_(J)/Δt and the desired speedv_(J) ⁰

[0144] Referring to FIG. 5, a plot of frustration against instantaneousspeed is shown, wherein v_(J) ⁰32 1.3 ms⁻¹, c_(∫)=1N⁻¹ per unit mass

[0145] The sum of inconvenience and frustration is hereby defined as“self-dissatisfaction”, i.e..

J_(S)( 1 , θ)≡I( 1 , θ)+F( 1 )  (11)

[0146]FIGS. 6a and 6 b show two- and three-dimensional plot, ofself-dissatisfaction for initial values l_(J−1)=10 m and θ_(J−1) =50°and current preferences of θ ₁ ⁰=90° and v_(J) ⁰=1.3 ms⁻¹

[0147] Self-dissatisfaction is the perceived undesirable cost contraryto physical and physiological traits. It is self-referential and doesnot take account of external factors.

[0148] In this example, equation 11 is derived using the Lagrangianformalism. Following an approach based on variational techniques,equations of motion can be obtained by determining the stationary pointof Action by minimizing J_(S)(l,θ) or solving the system of differentialequations, namely: $\begin{matrix}{{\frac{\quad}{l}\Delta \quad {J_{S}\left( {l,\theta} \right)}} = 0} & (12) \\{{\frac{\quad}{\theta}\Delta \quad {J_{S}\left( {l,\theta} \right)}} = 0} & (13)\end{matrix}$

[0149] The equations of motion may also be obtained by invoking ad-hocphenomelogical forces which lead to an analogous result.

[0150] The solution yields the optimal next step, namely.$\begin{matrix}{{\theta_{j}^{opt} = {\arctan \left\lbrack \frac{{{l_{j - 1}\sin \quad \theta_{j - 1}} + {\mu \quad g\quad \Delta \quad t^{2}\sin \quad \theta_{j}^{0}}}\quad}{{l_{j - 1}\cos \quad \theta_{i - 1}} + {\mu \quad g\quad \Delta \quad t^{2}\cos \quad \theta_{j}^{0}}} \right\rbrack}}{l_{opt}\left( \theta_{j} \right)} = {\frac{1}{c_{i} + c_{f}}\left\lbrack {{c_{f}\upsilon_{j}^{0}\Delta \quad t} - {c_{i}\mu \quad g\quad \Delta \quad {t^{2}\left( {1 - {\cos \left( {\theta_{j} - \theta_{j}^{0}} \right)}} \right)}} + {c_{i}l_{i - 1}{\cos \left( {\theta_{j} - \theta_{j - 1}} \right)}}} \right\rbrack}} & \left( {14,15} \right)\end{matrix}$

[0151] Equation 14 supplies a single value for the optimal orientationangle θ_(j)^(opt).

[0152] Equation 15 expresses the step length as a function oforientation angle In particular, for any chosen direction θ_(j) theoptimal path for that angle is given by l_(opt)(θ_(j)). The optimal steplength is obtained by replacing θ_(j) by θ_(j)^(opt),

[0153] so that the set (θ_(i)^(opt), l_(opt)(θ_(j)^(opt)))

[0154] describes the optimal step. The optimal orientation angleθ_(j)^(opt)

[0155] and optimal step length l_(opr) specify the step which thepedestrian would like to take. Thus, they are referred to as the“preferred orientation angle” and “preferred step length” respectively

[0156] The values of (θ_(j)^(opt), l_(opt)(θ_(j)^(opt)))

[0157] are used in the next stage of micro-navigation.

[0158] Pedestrian Interactions

[0159] The preferred step described by the set of values(θ_(j)^(opt), l_(opt)(θ_(j)^(opt)))

[0160] achievable in the absence of environmental impediment such asfixed obstacles or other pedestrians which may otherwise prohibit itfrom being taken. In practice, however, the preferred step usuallycannot be taken. This may be because the pedestrian is in a denselypopulated area or due to fixed obstacles.

[0161] As will be described in more detail later, the preferred step isnot taken if any point along its length is associated with anon-vanishing value of a function referred to as “discomfort”.Discomfort arises as a result of infringement of a subjectivelydetermined area known as personal space.

[0162] If the preferred step cannot be taken, then a search is made foran acceptable, feasible compromise step.

[0163] Potentially, a search space lies within a circle centred on thepedestrian's current location and having a radius equal to the maximumdistance possible over the course of one step. However, it is unusualfor a pedestrian to consider taking a step backwards when avoiding otherpedestrians and obstacles. Similarly, it Is rare that the pedestrianwill come to a complete stand still or run at full speed Thus, manypotentially feasible next steps can be immediately eliminated. Thus,acceptable compromise steps are picked from narrower range of angles andstep lengths

[0164] The second stage of micro-navigation comprises establishingcriteria for deciding which subset of feasible next steps is worthlooking into and applying these criteria to restrict the domain ofacceptable solutions from a full circle to a narrow subspace with fixedangular and step-length boundaries

[0165] A second Action function J_(T) called “dissatisfaction” is usedwhich considers discomfort arising when neighbouring pedestrians andfixed obstacles infringe an entity's personal space

[0166] The interaction of the pedestrian with their surroundings may beconsidered as competition for space. The pedestrian, by virtue of beinga physical object, occupies physical space. At the very least, the areaphysically available must be sufficient to accommodate the pedestrian'sphysical space. However, there are also psychological spatialrequirements. Pedestrians require personal space, or clearance fromtheir nearest neighbours and obstacles in order to feel comfortable. Indealing with pedestrian interactions, account is taken of both thephysical and psychological requirements for personal space. To achievethis additional attributes and preferences for pedestrians are used.

[0167] Pedestrians are assigned a set of characteristics includingintrinsic attributes, such as physical space requirements, andpreferences, such as preferred speed. These characteristics are includedin a profile

[0168] As explained earlier, a profile includes one or more continuousdistribution functions for one or more corresponding attributes, such aspreferred speed, which characterise a particular type or “species” ofpedestrian. Each continuous distribution function describes empiricallyestablished attributes of real population samples which have beenmeasured and analysed.

[0169] Core profiles may include pedestrian attributes based onfundamental criteria such as ethnicity, which may represent physical andcultural differences, venue, which represent contextual differences suchas behaviour in a railway station as opposed to a stadium, and sex,which reflect physical differences such as physical space occupied orspeed The assignment of a core profile to an entity is a one-off event,for example when generating an entity in a simulation and subsequentlyremains the same Some attributes, such as preferred walking speed aredrawn only once when the entity is generated. Other attributes may berepeatedly, randomly drawn, for example every step. Attributes describedin core profiles are referred to as “intrinsic” attributes

[0170] Secondary or transient features may also be used These mayinclude physical space occupied due to the carrying of luggage. Theseattributes can be assigned to the entity at the same time as the corefeature, although they may change one or more times.

[0171] One aspect of the second Action function J_(γ), is theintroduction of an additional term referred to as “discomfort” whichaccounts for the perceived reduction of desired personal space due toexternal impediments. Thus, a spatial area is defined having a specificform and size which the pedestrian attempt to keep clear of fixedobstacles and neighbouring pedestrians. Another aspect is that it mayuse modified entity attributes, as for example a modified preferredspeed adjusted for local circumstances, rather than the value originallydrawn from its profile

[0172] Physical Size of a Pedestrian

[0173] Referring to FIG. 7, a physical form or area 16 that a pedestrianoccupies may be approximated by an ellipse. The ellipse 16 is defined interms of its major and minor axes a, b, which are referred to here as“shoulder breadth” and “body depth” respectively.

[0174] Reference is made to “Bodyspace Anthropometry, Ergonomics and theDesign of Work” by Stephen Pheasant (2^(nd) Edition, Taylor and Francis,London 1998) which describes numerous population samples selected byethnicity, sex and age groups.

[0175] The major and minor axis parameters are drawn from as Gaussian(or normal) distribution or other suitable curves For a Gaussianrepresentation, four parameters are used to represent each populationsample, namely a centroid and a standard deviation of the Gaussianprobability distribution curve for each ellipse axis.

[0176] Assigning a physical size to an entity is equivalent toattributing suitable values for the shoulder breadth and body depth axesof the ellipse However, a simpler form can be used, such as a circle,which requires a single parameter, namely radius, and which easier tomanipulate due to its symmetry. This is useful when considering overlapbetween the pedestrian and other pedestrians and obstacles

[0177] The ratio of major to minor axis is near constant per populationsample for the mean, lower (5%) and higher end (95%) of the Gaussianprobability distributions supplied. For example, for British men theratio (b/a) is close to 0 637, whether a is the shoulder breadth (majoraxis) and b the body depth (=minor axis). Thus, sampling one parameterfrom its proper distribution function, say the shoulder breadth, theother parameter may be determined by the ratio above.

[0178] Whereas the net area of the physical space is important, itappears that there is no sensitivity in the form between an ellipse anda circle of equal area For densities up to about 9.5 persons per squaremeter (ppsm), which are extremely high and rare, pedestrians maintain apersonal space around them that is larger than their physical space.While this is the case, the area of the physical space is entirelycontained within the personal space, i.e psychological considerationstake precedence over physical constraints. Under those circumstances theform of physical space is not important so long as the area is preservedand replacing the elliptical form by a circular one has no noticeablequantitative effect For extremely high densities, again the net area ismore important

[0179] Referring to FIG. 8, the physical space occupied by a pedestrianmay be approximated by a circle 17 of radius R₀, namely: $\begin{matrix}{{{\pi \frac{ab}{4}} \approx {\pi {\langle{b/a}\rangle}\frac{a^{2}}{4}}} = {\left. {\pi \quad R_{0}^{2}}\Rightarrow R_{0} \right. = {\sqrt{\langle{b/a}\rangle}\frac{a}{2}}}} & (16)\end{matrix}$

[0180] and (b/a) is the mean ratio of the ratio of the two axes perpopulation sample The radius is derived by setting the area of theellipse equal to the area of the circle.

[0181] In summary, population samples selected by ethnicity, sex, agegroup and other criteria can be described using a Gaussian probabilitydistribution of shoulder breadth and a mean ratio of shoulder breadth tobody depth from empirical measurements.

[0182] Physical Size of Luggage-carrying Pedestrians

[0183] A frequently encountered transient attribute is the increase inphysical size due to the carrying of luggage.

[0184] Referring to FIG. 9, an increase in size due to carrying luggagecan be absorbed into an extended circle 18 with area equal to the sum ofthe original entity area 17 and that of the luggage 19.

[0185] Thus, if R_(n) is the entity radius and a′,b′ are the length andwidth respectively of a piece of luggage, then the areas occupied by theentity and the luggage are A=πR₀ ² and a=a′b′ respectively. Thus, theeffective area is calculated as.

A′=A+a   (17)

[0186] and the effective entity radius is determined to be:

[0187]R ₀ ′={square root}{overscore (A)}′/π  (18)

[0188] Referring to FIG. 10, Gaussian distribution functions 20 ₁, 20 ₂,20 ₃, 20 ₄ for assorted, small, medium and large luggage are shown. Forexample, for small luggage, a mean area may be 0.3 m×0 2 m=0 06 m². Formedium and large luggage, mean areas may be 0 7 m×0.3 m=0.21 m² and 1 0m×0.4 m=0 04 m² respectively The Gaussian distribution functions 20 ₁,20 ₂, 20 ₃, 20 ₄ are used to assign luggage sizes randomly to designatedentities

[0189] Personal Space in Pedestrian Behaviour

[0190] Personal space is the area a pedestrian strives to maintain clearof obstacles and other pedestrians while walking or standing

[0191] Referring to FIG. 11, the pedestrian 5 at current location 12 ₂is evaluating position 12 ₁ as candidate for their next step. Thepedestrian 5 is also estimating the personal space that will beavailable at that position 12 ₃ given that a neighbouring pedestrian 21may also be competing with them for the space. Other neighbouringpedestrians may also be competing for the space and may also beincluded. Nevertheless, for the sake of clarity only one neighbouringpedestrian is shown.

[0192] The neighbouring pedestrian 21 previously took a step 22, from afirst position 23, to their current position 23, at time j−I and, fromthe point of view of the pedestrian 5, appears to be considering takinga step 22 ₃ to a new position 23 ₃ at time j.

[0193] The pedestrian 5 estimates the future position of neighbouringpedestrian 21. The true intention of the neighbouring pedestrian isunknown and so any prediction is based on observations This predictionis based on an apparent speed and direction of the neighbouringpedestrian 21, namely those of their most recently completed step 22 ₁.

[0194] The situation may be described by the following set of equations:$\begin{matrix}{{{{{\quad \overset{\overset{\_}{r}}{\quad}}_{i}^{i,k} = {{x_{i}^{i,k}\overset{̑}{x}} + {y_{j}^{i.k}\overset{̑}{y}}}}\quad \quad {\overset{.}{r}}_{i + 1}^{i}} = {{x_{j + 1}^{i}\overset{̑}{x}} + {y_{j + 1}^{i}\overset{̑}{y}}}}{{\delta \quad {\overset{\rightharpoonup}{r}}_{j,{i + 1}}^{i}} = {l_{j}^{i}{\hat{\theta}}_{i}^{i}}}{{\delta \quad {\overset{\_}{r}}_{j,{j + 1}}^{k}} = {l_{j - i}^{k}{\overset{\_}{\theta}}_{j - 1}^{k}}}\quad {{\overset{\_}{r}}_{j + 1}^{k} = {{\overset{\_}{r}}_{j}^{k} + {\delta \quad {\overset{\_}{r}}_{j,{j + 1}}^{k}}}}\quad {{\delta\theta}_{j}^{i,k} = {\cos^{- 1}\left( \frac{\delta \quad {{\overset{\_}{r}}_{i,{i + 1}}^{i} \cdot \delta}\quad {\overset{\_}{r}}_{j,{j + 1}}^{k}}{{{\delta \quad {\overset{¨}{r}}_{j,{j + 1}}^{i}}}{{\delta \quad {\overset{\_}{r}}_{j,{j + 1}}^{k}}}} \right)}}} & \left( {19,20,21,22,23,24} \right)\end{matrix}$

[0195] where ${\overset{\_}{r}}_{j}^{i,k}$

[0196] is the current position of the pedestrian 5 and neighbouringpedestrian 21 respectively, ${\overset{\rightharpoonup}{r}}_{j + 1}^{i}$

[0197] is the targeted position 12 ₁′ of the pedestrian 5,$\delta \quad {\overset{\_}{r}}_{j,{j + 1}}^{i}$

[0198] is the change in position of the pedestrian 5 over step J,$\delta \quad {\overset{\_}{r}}_{j,{j + 1}}^{k}$

[0199] is the projected change of position of the neighbouringpedestrian 21 over step j, ${\overset{¨}{r}}_{j + 1}^{k}$

[0200] is the projected position 23 ₃′ of the neighbouring pedestrian 21after step j and δθ_(j)^(i, k)

[0201] is a relative angle between the step 11 ₂ and apparent step 22 ₂.

[0202] In defining personal space, several considerations may be takeninto account

[0203] As described earlier, the clearance sought from surroundingneighbours depends on the position and velocity of both the individualand the surrounding neighbours. The positions of surrounding neighboursare projected by processing available information and prognosticatingintentions, i e. assuming that they will continue to be moving in thesame direction and with the same speed over their next step as they werelast observed to have in their most recently completed step.

[0204] The angular dependence of desired clearance is correlated withspeed. In particular, personal space is distributed uniformly whilestanding, whereas it is increased in favour of the forward directionwhen moving forward. Thus, the shape and size of personal space isdynamically adjusted as a function of the pedestrian's motion relativeto their surrounding neighbouring pedestrians and obstacles.

[0205] The personal space also depends on density In densely packedcrowds individuals tend to relax their requirements and accept lessspace than they would have under less constrained circumstances. This isa form of adaptation by habituation, which is described in more detaillater.

[0206] Differentiations in preferences for personal space across speciesor different population samples selected, for example by ethnicity orcontext, also exist The origin of these may be either physical,cultural, or contextual, also exist. Furthermore, even within a uniformpopulation sample or species, individuals range in their needs forpersonal space.

[0207] Variations in needs for personal space are described in terms ofa “rank”. Entities are classified by their rank within their ownpopulation. A number between 0 and 1 may be used to indicate theproportion of the population which is more tolerant with regard torequirements of clearance for personal space Thus, an entity may draw amean personal space rank S₁ ⁰.

[0208] There are spontaneous variations, or noise, in the individualpersonal space preferences of pedestrians, similar to speed noisedescribed earlier Thus, an instantaneous, personal space rank S₁ ^(J)may be defined as:

S _(i) ^(J) =S ₁ ⁰ +δS ₁ ^(J)  (25)

[0209] where S₁ ⁰ is the mean personal-space rank and δS₁ ^(J) is theinstantaneous noise S_(i) ^(n) and δS₁ ^(J) are drawn randomly fromprobability distribution functions derived from fits to measurements.

[0210] Based on these considerations and using standard statisticalanalysis techniques and fits to empirical data, personal space_(j + 1)^(l)

[0211] may be defined as. $\begin{matrix}{{_{j + 1}^{i}(\theta)} = {\frac{S_{i}^{j}}{\sqrt{\rho_{j}^{i}}}\left\lbrack {1 + {\frac{l_{j}^{\prime}}{\Delta \quad t}\left( {{c_{1}\cos \quad \theta} + {c_{2}\cos \quad 20}} \right)}} \right\rbrack}} & (26)\end{matrix}$

$\begin{matrix}{{_{j + 1}^{l}(\theta)} = {\frac{S_{i}^{j}}{\sqrt{\rho_{j}^{i}}}\left\lbrack {1 + {\frac{l_{j}^{i}}{\Delta \quad t}\left( {{c_{1}\cos \quad \theta} + {c_{2}\cos \quad 2\theta}} \right)}} \right\rbrack}} & (26) \\{_{j + 1}^{ik} \equiv {_{j + 1}^{ik}\left( {\delta \quad \theta_{j + 1}^{i,k}} \right)}} & (27)\end{matrix}$

[0212] where _(j + 1)^(ik)

[0213] is the desired clearance of pedestrian 5 from neighbouringpedestrian 21 following step j as a function of its instantaneouspersonal-space rank S₁ ^(J) and the relative angle δ  θ_(j + 1)^(ik)

[0214] between the pedestrians 5, 21. Parameters c₁, c₂ are derived fromfitting the model to data, Δt is the duration of a step and ρ¹ _(j) isthe pedestrian density in units of pedestrians per square meter (ppsm),as experienced by the pedestrian 5 at time j.

[0215] In equation 26, personal space _(j + 1)^(i)

[0216] exhibits anisotropic angular dependence. Personal space is also afunction of the entity's own speed l¹ _(J)/Δt and local density ρ¹ _(J)The dependency of personal space on local density ρ¹ _(J) is amanifestation of adaptation by habituation, which will be described inmore detail later

[0217] In equation 27, _(j + 1)^(ik)

[0218] is defined with reference to neighboring pedestrians by arelative angle δ  θ_(j + 1)^(i, k)

[0219] which takes account of the relative position and projected speedof the neighboring entity to the entity It is individually calculatedfor each individual pedestrian at each time step.

[0220] Referring to FIG. 12, plots of personal space _(j + 1)^(i)

[0221] for a pedestrian for different speeds and having a tank equal tothe mean obtained from fitting measured personal spaces is shown. First,second, third, fourth and fifth plots 24 ₁, 24 ₂, 24 ₃, 24 ₄, 24 ₅ arefor a pedestrian at rest and moving at 0 5, 1.0, 1 5 and 2.0 ms⁻¹respectively.

[0222] The virtual work corresponding to the perceived cost of beingdeprived of desired personal space is referred to as “discomfort”. Aneffective potential energy term is assigned similar to the potentialenergy of a compressed spring. Other forms of effective potential energymay also be assigned provided. The potential energy may vary linearly ornon-linearly, logarithmically or exponentially or may include polynomialterms.

[0223] The preferred distance of a pedestrian from each of theirneighbours is similar to a relaxation length of a spring Being obligedto keep a shorter distance than the one preferred one is similar tocompressing a spring which consequently acquires potential energy equalto the work needed to compress it.

[0224] Thus, discomfort is the sum of potential energy terms for eachneighbour, namely: $\begin{matrix}{{\Delta \quad r_{j + 1}^{ik}} = {_{j + 1}^{ik} - {{{\overset{\_}{r}}_{i + 1}^{i} - {\overset{\_}{r}}_{j + 1}^{k}}}}} & \quad \\{V_{j + 1}^{ik} \equiv {\frac{1}{2}{c_{d}\left( {\Delta \quad r_{i + 1}^{ik}} \right)}^{2}{\Theta \left( {{\Delta \quad r_{j + 1}^{ik}} \geq 0} \right)}}} & \left( {28,29,30} \right) \\{D_{j + 1}^{neighbors} \equiv {\sum\limits_{k \in {({neighbors})}}^{\quad}\quad V_{j + 1}^{ik}}} & \quad\end{matrix}$

Δ  r_(r + 1)^(ik)

[0225] is the deficit between the desired clearance _(j + 1)^(ik)

[0226] and the actual head-to-head distance${{\overset{\_}{r}}_{j + 1}^{i} - {\overset{\_}{r}}_{i + 1}^{k}}$

[0227] between the pedestrian 5 and an offending neighbour such aspedestrian 21 V_(j + 1)^(ik)

[0228] is the compression energy arising between the pedestrian 5 and anoffending neighbour, such as pedestrian 21. The step Θ function ensuresthat neighbouring entities outside a pedestrian's personal-space do notcontribute to discomfort since they are sufficiently far away. Theparameter c_(d) is a strength parameter extracted from fits to data. Thetotal discomfort D_(j + 1)^(neighbors)

[0229] experienced by pedestrian 5 is the sum of all the ‘compressionenergy’ terms of all offending neighbours including neighbouringpedestrian 21. The parameter c_(d) is a strength parameter extractedfrom fits to data.

[0230] Discomfort arising from nearby fixed obstacles is treatedsimilarly to discomfort arising from neighbouring pedestrians save forsome minor adjustments.

[0231] Referring to FIG. 13, a pedestrian 5 is located at position 122is considering taking the preferred step 11 ₂ to position 12 ₃.

[0232] Determining whether the preferred step 11 ₂ is feasible comprisesdetermining whether another pedestrian 21 or obstacle 25 is found intheir personal space 24.

[0233] This is performed over the course of the step. Thus, the personalspace 24 is moved along the track of the preferred step 11 ₂ and asearch is conducted within the personal space 24 for other pedestrians21 or obstacle 25 An instance of a shifted personal space 24′ isillustrated. The search may include determining whether anotherpedestrian 21, perceived to be taking a projected step 22 ₂, will moveto a position 23 ₃ which is found in personal space 24.

[0234] Referring to FIG. 14, an obstacle 25 maintains a fixed positionand may be represented by a sequence of segments 26, each segment havinga beginning and end 27, 28. Discomfort is evaluated relative to theobstacle 25 by considering only portion 26 ₁ of segments infringingtheir personal space.

[0235] Thus, relations similar to equations 19, 20, 21, 22, 23, 24, 28,29 and 30 may be derived in relation to a pedestrian 5 and a fixedobstacle 25, namely: $\begin{matrix}{{\delta\theta}_{j}^{l,k} = {\cos^{- 1}\left( \frac{\delta \quad {{\overset{¨}{r}}_{{j\quad j} + 1}^{i} \cdot {\overset{\sim}{L}}_{k}}}{{{\delta \quad {\overset{\_}{r}}_{{j\quad j} + 1}^{i}}}L_{k}} \right)}} & (31) \\{r_{j + 1}^{{ik},A,B} = \sqrt{\left( {x_{j + 1}^{i} - x_{A,B}^{k}} \right)^{2} + \left( {y_{j + 1}^{i} - y_{A,B}^{k}} \right)^{2}}} & (32) \\{l_{A,B}^{k} = \frac{{L_{k}^{2} \pm \left( r_{j + 1}^{{ik},A} \right)^{2}} \mp \left( r_{j + 1}^{{ik},B} \right)^{2}}{2L}} & (33) \\{\varphi_{j + 1}^{{ik},A,B} = {\arcsin \left( \frac{l_{A,B}^{k}}{r_{j + 1}^{{ik},{A\quad B}}} \right)}} & (34) \\{h_{k} = \sqrt{\left( r_{j + 1}^{{ik},A,B} \right)^{2} - \left( l_{AB}^{k} \right)^{2}}} & (35) \\{{\Delta \quad r_{j + 1}^{ik}} = {_{j + 1}^{ik} - \frac{h_{k}}{\cos \quad \varphi}}} & (36) \\{U_{j + 1}^{ik} \equiv {\frac{1}{2}c_{d}^{\prime}{\int_{\varphi_{j + 1}^{{ik},A}}^{\varphi_{j - 1}^{{ik},B}}\quad {{{\varphi \left( {\Delta \quad r_{j + 1}^{ik}} \right)}^{2}}{\Theta \left( {{\Delta \quad r_{j + 1}^{ik}} \geq 0} \right)}}}}} & (37) \\{D_{j + 1}^{obstacles} \equiv {\sum\limits_{k \in \quad {({obstacles})}}U_{j + 1}^{ik}}} & (38)\end{matrix}$

[0236] where index k identifies the offending obstacle, whereδθ_(j)^(i, k)

[0237] is the angle of path of pedestrian 5 and segment 26 over step j,r_(j + 1)^(ik, A  B)

[0238] is the distance between pedestrian 5 from beginning 27 and end28, l_(A, B)^(k)

[0239] is a portion of a segment portion 26 ₁, φ_(j + 1)^(ik, A, B)

[0240] are angular limits, as seen from the entity's test position,corresponding to the beginning and end 27, 28 of the segment 26 of theobstacle that infringes personal space over step j, h_(k) is thedistance of the pedestrian from segment 26, Δ  r_(j + 1)^(ik)

[0241] corresponds to the “height” of a triangle formed by the entity'scurrent position and the end points 27, 28 of the segment 26 of theobstacle infringing personal space, U_(j + 1)^(ik)

[0242] is the compression energy of pedestrian 5 relative to obstacle 25and D_(j + 1)^(obstacles)

[0243] is the sum of discomforts due to obstacles experienced bypedestrian 5 The parameter c¹ _(d) is the entity-obstacle interactionstrength extracted empirically from fitting to measurements. A cruderapproximation of equation 37 may also be used

[0244] Combining equations 30 and 38, the total discomfort is obtainednamely, $\begin{matrix}{D_{j + 1}^{i} = {D_{j + 1}^{neighbors} + D_{j + 1}^{obstacles}}} & (39)\end{matrix}$

[0245] and a total dissatisfaction is also found, namely.$\begin{matrix}{{\Delta \quad J_{j + 1}^{T_{i}}} \equiv {{\Delta \quad J_{i + 1}^{S_{i}}} + D_{j + 1}^{i}}} & (40)\end{matrix}$

[0246] Micro-navigation: State II

[0247] A pedestrian who is impeded by external factors, such as aneighbouring pedestrian or fixed obstacle, may be prevented from takingtheir preferred step. These external factors are perceived, processedand reconciled with the pedestrian's objectives and preferences. Anultimate decision regarding a least dissatisfying next step is one thatbetter serves the pedestrian's interests

[0248] The information on which this decision is based tends to belocal, noisy and imperfect The faculties that allow perceiving andprocessing information, learning, adapting and making a decision arecharacteristics of autonomous intelligent agents. These faculties leadto emergent behaviour known as self-organization.

[0249] The second stage of the micro-navigation includes establishingcriteria and employing them to limit a search space for suitablenext-step candidates This principally involves finding suitable lowerand upper angle bounds within which to seek the direction of the nextstep and adjusting the preferred speed, as required, to cope better withperceived local conditions

[0250] To make a decision, the following considerations are taken intoaccount, namely the unavailability of physical space due to the presenceof neighbours and obstacles, the probability for competition withpedestrians In an apparent collision course and the necessity forcooperation with pedestrians in a similar course

[0251] Thus, should the preferred next step be unavailable, a pedestriancan seek alternatives by reducing or increasing the length of their nextstep relative to their preferred length, additionally or alternativelyby deviating left or right from their preferred orientation

[0252] A first criterion is employed, namely the principle ofhabituation, which states that entities become accustomed to enduringcertain dissatisfaction over time, commensurate with local conditionsThey acquire a memory of dissatisfaction that serves as the yardstickfor a rough first assessment of their well-being. Perceived complianceor advantage relative to the norm is reason to stay the intended courseA perceived deficit induces deviating, to seek improvement.

[0253] Thus, each entity establishes a norm of dissatisfaction, i e. asubjective level that it deems acceptable on the basis of what is to beexpected locally from previous experience. This norm is effectively amemory of past dissatisfaction levels over a number of previous stepswith a rule for updating Likewise, entities maintain a memory of actualstep lengths, or equivalently walking speeds, over the same number ofsteps and updated by the same rule

[0254] A simple rule for updating information is employed, whichgradually phases out old information and incorporates new information atthe end of each step.

[0255] After completing step j−1 and prior to launching a new search forstep J, a dissatisfaction norm${\overset{\_}{\Delta \quad J}}_{j}^{T_{i}}$

[0256] and a feasible step length {overscore (l)}¹ _(j) are updated foreach pedestrian, namely: $\begin{matrix}{{\overset{\_}{\Delta \quad J}}_{j}^{T_{j}} = \frac{{\left( {N_{mem} - 1} \right){\overset{\_}{\Delta \quad J}}_{j - 1}^{T_{i}}} + {\Delta \quad J_{j}^{T_{i}}}}{N_{mem}}} & (41) \\{{\overset{\_}{l}}_{j}^{i} = \frac{{\left( {N_{mem} - 1} \right){\overset{\_}{l}}_{j - 1}^{i}} + l_{j}^{i}}{N_{mem}}} & (42)\end{matrix}$

[0257] where Δ  J_(j)^(T_(i))

[0258] is a current level of instantaneous dissatisfaction,${\overset{\_}{\Delta \quad J}}_{j - 1}^{T_{i}}$

[0259] is a dissatisfaction norm after completing step j−2, l¹ _(J) is acurrent instantaneous step length, ${\overset{\_}{l}}_{j - 1}^{i}$

[0260] is a feasible step length norm after completing step J−2 andN_(mem) is the number of memory steps

[0261] Other updating rules may be used provided the number of memorysteps N_(mem) is obtained a posteriori by fitting empirically to data.

[0262] By comparing the current level of instantaneous dissatisfactionΔ  J_(j)^(T_(i))

[0263] with the norm ${\overset{\_}{\Delta \quad J}}_{j - 1}^{T_{j}},$

[0264] it is established whether the current course appears to besatisfactory, if the instantaneous current level of totaldissatisfaction Δ  J_(j)^(T_(i))

[0265] is inferior than or equal to the dissatisfaction norm${\overset{\_}{\Delta \quad J}}_{j}^{T_{i}},$

[0266] or whether dissatisfaction levels are being induced that arehigher than what appears to be reasonable to anticipate, if otherwise.

[0267] In the latter case, a perceived habituation-adapteddissatisfaction deficit δJ_(j) ^(T)′ serves as incentive to deviate,namely: $\begin{matrix}{{\delta \quad J_{i}^{T \cdot i}} = {\max \left( {0,{{\Delta \quad J_{j}^{T_{i}}} - {\overset{\_}{\Delta \quad J}}_{j}^{T_{i}}}} \right)}} & (43)\end{matrix}$

[0268] The dissatisfaction deficit δ  J_(j)^(T1)

[0269] is used to establish first rough estimates of angular bounds tothe right (lower angles) and left (higher angles) of the pedestrian'spreferred orientation θ_(j)^(opt)

[0270] given by equation 14 above.

[0271] The following assumption is made in order to render thehabituation deficit of equation 43 into first angular bounds for thesearch, namely that a reasonable candidate for the next step j shouldachieve a step length or walking speed not worse than the norm, itshould result in a new position of comparable but not worse density (andthus discomfort) and it should induce a comparable level ofinconvenience due to friction as defined in equation 5 above.

[0272] Based on these conditions, the dissatisfaction deficitδ  J_(j)^(T ⋅ i)

[0273] can be attributed to the inconvenience due toaccelerating/turning defined in equation 16, which yields an angularrange: $\begin{matrix}{{\cos \quad \varphi} = {\min \left( {1,{\max \left( {{- 1},{1 - \frac{\delta \quad J_{j}^{T_{i}}\Delta \quad t^{2}}{c_{i}{m\left( {\overset{\_}{l}}_{j}^{i} \right)}^{2}}}} \right)}} \right)}} & (44) \\{{\Delta \quad \theta_{j}^{i,l,h}} = {\min \left( {\pi,{\max \left( {0,\varphi} \right)}} \right)}} & (45) \\{where} & \quad \\{\varphi = {{\theta_{j}^{l} - \theta_{j - 1}^{l}} \in \left\lbrack {0,\pi} \right\rbrack}} & \quad \\{\theta_{j}^{l} \in \left\lbrack {{\theta_{j - 1}^{i} - {\Delta \quad \theta_{j}^{i \cdot l}}},{\theta_{j - 1}^{i} + {\Delta \quad \theta_{j}^{i \cdot h}}}} \right\rbrack} & \quad\end{matrix}$

[0274] The imposed conditions are conservative and thus inclusive of allpossible solutions.

[0275] So far the angular range has been estimated relative to theorientation angle θ_(j − 1)^(i)

[0276] of the just completed step J−1. The estimate is refined byscanning the pedestrian's neighbourhood and determining localconditions, as will now be described in more detail

[0277] Referring to FIG. 14, a neighbourhood 29, hereinafter referred toas a test area, is defined around the preferred position 30 given byequation 14 and 15 above. Preferably, the test area 29 is in the form ofa circle which is large enough to contain a personal space defined byequations 35 and 36 for any feasible pedestrian speed. Thus, the edge oftest area 29 is the farthest that the pedestrian need “look” in order toobtain information for making a decision. A typical radius of the testarea is between 1 5 and 2.5 metres.

[0278] The test area 29 in divided in four quadrants 29 _(I), 29 _(II),29 _(III), 29 _(IV) relative lo the preferred forward orientationdefined in equation 14 above Each quadrant is scanned independently andso as to extract any relevant information.

[0279] The areas of the rest area 29 and four quadrants 29 _(I), 29_(II), 29 _(III), 29 _(IV) are given by: $\begin{matrix}\begin{matrix}{\alpha_{test} = {\pi \quad R_{test}^{2}}} \\{\alpha_{0} = {\alpha_{test}/4}}\end{matrix} & \left( {46,47} \right)\end{matrix}$

[0280] where R_(test) is the radius of the test area 29

[0281] For each quadrant 29 _(I), 29 _(II), 29 _(III), 29 _(IV), anestimate is made of the number of neighbours likely to be within it bythe time the pedestrian 5 completes step j This is done by projectingthe position of the neighbours at the end of their step on the basis oftheir velocity and position as prognosticated by the pedestrian 5. It isassumed that a neighbour will continue to move with the same speed andin the same direction when last “observed”, namely that of their lastcompleted step. The number of neighbours so counted is denoted N₂, wherethe subscript x=I,II,III,IV is the index of the corresponding quadrant29 _(I), 29 _(II), 29 _(III), 29 _(IV)

[0282] Referring to FIG. 16, a scan if performed for fixed obstacles 25,25′. The physical area that is accessible and free of fixed obstaclesper quadrant is then calculated If α_(x) ^(ρ) is the area occupied ortendered inaccessible by an obstacle 25, 25′, then an obstacle free areaα_(x) ^(f) within a quadrant may be calculated, namely:

α_(x) ^(f)=α_(q)−α_(x) ^(ρ)  (48)

[0283] For example, the obstacles 25, 25′ infringe the first, second andthird quadrants 29 _(I), 29 _(II), 29 _(III).

[0284] For first and second quadrants 29 _(I), 29 _(II), the accessibleareas α_(I) ^(f), α_(II)^(f)

[0285] which are free and accessible comprises regions 30 _(I), 30 _(II)of quadrants 29 _(I), 29 _(II) to the left of the obstacle 25. For thethird quadrant 29 _(III) which entirely contains a smaller obstacle 25′,the accessible area α_(III)^(f)

[0286] excludes not only a physical area 31 occupied by the obstacle25′, but also a portion 32 of the quadrant 29 _(III) in the shadow ofthe obstacle 25′ as viewed from the pedestrian 5 Thus, the accessiblearea α_(III)^(f)

[0287] for the third quadrant 29 _(III) comprises the region 30 _(III)excluding the area 31, 32 delimited by a front edge 32 of the obstacle25 and two lines of sight 33 ₁, 33 ₂.

[0288] Having estimated the accessible area per quadrant α_(x) ^(f) andthe number of neighbours contained therein, the personal space perentity α_(c) is estimated, using: $\begin{matrix}{\alpha_{c} = {\max \left( {\alpha_{c}^{\max},\frac{\sum\limits_{{x = I},{II},{III},{IV}}^{\quad}\quad \alpha_{\lambda}^{f}}{1 + {\sum\limits_{{x = I},{II},{III},{IV}}^{\quad}N_{c}}}} \right)}} & (49) \\{\alpha_{x}^{c} = {\sum\limits_{\underset{{x = I},{II},{III},{IV}}{{kc}{({x,{l_{j - 1}^{k}\rightarrow 0}})}}}^{\quad}\quad \alpha_{c}}} & (50)\end{matrix}$

[0289] where α_(c)^(max)

[0290] maximum area allocated per entity, which is an empiricallyobtained value from fitting data The personal space per entity α_(c) isthe area which is free of obstacles and which is divided among theneighbouring pedestrians and the pedestrian themselves. However, if thedensity of pedestrians in the test area 28 is low then the maximum areaallocated per entity α_(l)^(max)

[0291] is used This is because the pedestrian expands his or herpersonal space, the fewer neighbors there are in his or herneighbourhood 29 A larger personal space leads to a greater sense ofwell-being If, however, there are few or no neighbours infringing thepedestrian's neighbourhood 29, then the pedestrian is content with amaximum area available as personal space Beyond that, they do not carewhether more personal space is available

[0292] Having determined how much of neighbourhood 29 is free ofobstacles 25, how many neighbours are infringing the test neighbourhood29 and how much personal space per entity can be expected per quadrant,an area of a lane, α_(pass), required for passage through theneighbourhood 29 is then estimated using:

α_(pass) =R _(rest) R ₀  (51)

[0293] This area is expected to be available if enough area free ofobstacles is available, but not otherwise. The net free area α_(x) of aquadrant 29 _(I), 29 _(II), 29 _(III), 29 _(IV) and forward spatialavailability weights w_(l,h) for the first and fourth quadrants 29 _(I),29 _(IV) are estimated using:

α_(x)=α_(x) ^(f)−α_(x) ^(e)  (52)

[0294] $\begin{matrix}{{if}\quad \left( {\alpha_{I,{IV}}^{f} \geq {4\alpha_{size}}} \right)\left\{ \begin{matrix}{\alpha_{I,{IV}}^{f}-=\alpha_{pass}} \\{\alpha_{q}-=\alpha_{pass}}\end{matrix} \right.} & (53) \\{w_{I,h} = \frac{\alpha_{I,{IV}}}{\alpha_{q}}} & (54)\end{matrix}$

[0295] The first and fourth quadrants 29 _(I), 29 _(IV) are thequadrants where the pedestrian is most likely to look for its next stepThe forward spatial availability weights w_(l,h), which can take valuesbetween zero and unity, express the likelihood that free space is to befound there. Thus, a value of w_(l,h)=1, where the indices l,hcorrespond to forward low or high angle, respectively, i.e first andfourth quadrants 29 _(I), 29 _(IV), means that the entire quadrant 29_(x) is fully available and free of obstacles and neighbours. Bycontrast, a value of w_(l,h)=0 means that the quadrant 29 _(x) issaturated with obstacles and neighbours and there appears to be no areaavailable to be claimed. Thus, the forward spatial availability weightsw_(l,h) is an important indicator when selecting a quadrant 29, that islikely to yield a satisfactory solution

[0296] Having estimated the availability of physical space, theoffending neighbours found in the test area 29 are categorized as“friends” or “foes” Cooperation and competition are extremely importantin emergent phenomena induced by the interactions of intelligent agents.

[0297] Referring to FIG. 17, a friend 34 may be classified as aneighbouring pedestrian which appears to be moving in the pedestrian'sapproximate direction. A foe 35 may be classified on the other hand as aneighbouring pedestrian that is moving in an opposing direction

[0298] If the density of friends 34 in the neighbourhood 29 is veryhigh, it can enforce synchronization. For a high-density pocket ofslow-moving friends 34 lying ahead of the pedestrian 5, if there isinsufficient space for overtaking, then the pedestrian 5 is forced toslow down. This synchronization effect is a collaborative phenomenon,which causes a slowing down to speed levels below the preferred speed.Likewise, for a fast-moving, high-density pocket of friends lying behindthe pedestrian 5, if there is not enough room to move out of the way,then the pedestrian 5 speeds up

[0299] Apart from adjustments to the cruising speed, synchronization mayalso cause re-ordering In extreme situations at high density, thepedestrian may be forced to take a step only after the person directlyahead has moved and no earlier

[0300] The density of friends and the apparent synchronization speed areconsiderations to be taken into account since they enforce deviatingfrom one's preferred speed and therefore act as deterrents. Theseconsiderations, however, are only necessary for instantaneousadjustments of the speed and do not need to be “remembered” This isbecause cruising speed is resumed when synchronization is no longernecessary.

[0301] For oncoming neighbours, i e foes 35, the considerations to betaken into account are somewhat different The pedestrian is competingrather than collaborating with their foes.

[0302] The higher the density of oncoming foes 35, the higher theprobablity of collision becomes. Thus, the cost for successfullynegotiating and avoiding collision tends to become greater also.

[0303] The density of foes 35 and collision probability are importantfactors for consideration Unlike synchronization, which can be takeninto account instantaneously, collision probability is remembered tofacilitate future intelligent decisions Thus, in high-volumemulti-directional traffic one should not only take into account theinstantaneous physical presence of oncoming foes, but also any historyof foes. The history or memory of past collision probabilities serves toproject the likelihood that one might encounter yet-invisible foedownstream, even if nor quite yet in sight, by which time it may be toolate for corrective manoeuvring

[0304] For friends and foes, a cooperation weight w_(k  j)^()

[0305] and competition weight w_(k; j)^(⊥)

[0306] assigned by the pedestrian 5 to each friend 34 and foe 35respectively who are projected be in the test area 29 by the end of stepj are: $\begin{matrix}{w_{k,j}^{} = {\frac{1}{2}\left\lbrack {1 + {\cos \left( {\theta_{j}^{i,{opt}} - \theta_{j - 1}^{k}} \right)}} \right\rbrack}} & (55) \\{w_{k,j}^{\bot} = {\frac{1}{2}\left\lbrack {1 - {\cos \left( {\theta_{j}^{i,{opt}} - \theta_{j - 1}^{k}} \right)}} \right\rbrack}} & (56)\end{matrix}$

[0307] The assignment is on the basis of the extent to which theprojected direction of motion of a neighbour appears to be parallel oranti-parallel to that of the pedestrian using equations 19 to 24 above

[0308] For friends, the position ${\overset{\_}{r}}_{j}^{lk}$

[0309] and angle θ_(j)^(ik)

[0310] relative to the position and direction of pedestrian 5 arecalculated using: $\begin{matrix}{{\overset{\_}{r}}_{j}^{ik} = {{\left( {x_{j + 1}^{k} - x_{j + 1}^{i}} \right)\hat{x}} + {\left( {y_{j + 1}^{k} - y_{j + 1}^{i}} \right)\hat{y}}}} & (57) \\{\theta_{j}^{ik} = {\cos^{- 1}\left( \frac{\delta \quad {{\overset{\_}{r}}_{j,{j + 1}}^{l} \cdot {\overset{\_}{r}}_{j}^{ik}}}{{{\delta \quad {\overset{\_}{r}}_{j,{j + 1}}^{i}}}{{\overset{\_}{r}}_{j}^{lk}}} \right)}} & (58)\end{matrix}$

[0311] These parameters lead to estimates of forward, lateral, andcombined proximity weights w_(k, j)^(f, l, prox),

[0312] namely: $\begin{matrix}{w_{k,j}^{f} = {\min \left( {0,{1 - \frac{{{{{\overset{\_}{r}}_{j + 1}^{i} - {\overset{\_}{r}}_{j + 1}^{k}}}\cos \quad \theta_{j}^{ik}} - R_{0}^{i} - R_{0}^{k}}{R_{test} - R_{0}^{i} - R_{0}^{k}}}} \right)}} & (59) \\{w_{k,j}^{l} = {\min \left( {0,{1 - \frac{{{{{\overset{\_}{r}}_{j + 1}^{i} - {\overset{\_}{r}}_{j + 1}^{k}}}\sin \quad \theta_{j}^{ik}} - R_{0}^{i} - R_{0}^{k}}{R_{test} - R_{0}^{i} - R_{0}^{k}}}} \right)}} & (60) \\{w_{k,j}^{prox} = {w_{k;j}^{f}w_{k,j}^{l}}} & (61)\end{matrix}$

[0313] Thus, the nearer a friend 34 is to the pedestrian 5 in bothforward and lateral sense, then the more it enforces speedsynchronization.

[0314] Lastly, weighted counts of friends 34 and foes 35 per quadrantand corresponding densities ρ^(∥) _(x), ρ_(l) ^(⊥), ρ_(h) ^(⊥) aredetermined: $\begin{matrix}{n_{x}^{\parallel} = {\sum\limits_{\underset{{x - I},{II},{III},{IV}}{k \in x}}{w_{k,j}^{\parallel}w_{k,j}^{prox}{\Theta \left( {{\cos \left( {\theta_{j}^{l\quad {opt}} - \theta_{j - 1}^{k}} \right)} \geq {\cos \quad \theta_{\parallel}}} \right)}}}} & (62) \\{n_{x}^{\bot} = {\sum\limits_{\underset{{x - I},{II},{III},{IV}}{k \in x}}{w_{k,j}^{\bot}\quad {\Theta \left( {{\cos \left( {\theta_{j}^{l \cdot {opt}} - \theta_{j - 1}^{k}} \right)} < {\cos \quad \theta_{\parallel}}} \right)}}}} & (63) \\{\rho_{x}^{\parallel} = \frac{n_{x}^{\parallel}}{\alpha_{x}}} & (64) \\{\rho_{l}^{\bot} = \frac{n_{I}^{\bot} + n_{II}^{\bot}}{\alpha_{I} + \alpha_{II}}} & (65) \\{\rho_{h}^{\bot} = \frac{n_{III}^{\bot} + n_{IV}^{\bot}}{\alpha_{III} + \alpha_{IV}}} & (66)\end{matrix}$

[0315] The step Θ function enforces the condition in parenthesis. Thus,if the condition is true, then the Θ function is equivalent to unity,otherwise zero. The parameter θ_(//) is set empirically to π/3. Thus,neighbours whose direction of motion is to within θ_(//) on eitherdirection (i e higher or lower) from that of pedestrian 5 are consideredas moving in a similar direction and are counted as friends 34, thusresulting in collaboration and synchronization. Those neighbours,however, whose direction of motion falls outside this range are countedas foes 35 and contribute to competition in the form of higherprobability for collisions

[0316] The process described in relation to equations 59 to 66 andextracting information relating to neighbouring pedestrians is referredto as scanning the neighbourhood 29 in the vicinity of the pedestrian 5and assessing local conditions The information derived from computationof equations 59 to 66 is subsequently used to establish criteria appliedin restricting the search space

[0317] Starting with the density of foes 35, a probability of collisiontowards lower or higher angles translates into a probability that thepedestrian 5 will be on a collision course with an offending neighbourshould it decide to deviate to the right (I e. lower angles) or left(higher angles) of its optimal orientation as defined in equation 14.This probability requires further refinements of the angular acceptancerange derived earlier in equation 53.

[0318] In summary, the information relating to the density of foes 34 inthe test area 39 is used to impose angular restrictions in the searchspace of acceptable feasible candidate next steps and to decide whetherseeking a solution toward the left or right of the optimal orientationis more profitable

[0319] An instantaneous competition strength p_(l, h)^(⊥)

[0320] is derived from the instantaneous information foe densityρ_(l, h)^(⊥)

[0321] and the estimated personal space per entity α_(c) namely:$\begin{matrix}{p_{l,h}^{\bot} = {\min\left( {l,{\rho_{l{\quad \quad}h}^{\bot}\alpha_{c}}} \right)}} & (67)\end{matrix}$

[0322] This admits values between zero (collision impossible) and unity(collision certain) for either side (index l for lower angles, or to theright of the optimal orientation, and h for higher angles or to theleft).

[0323] A collision probability memory${\overset{\_}{p}}_{l\quad h}^{\bot}$

[0324] maintained by the pedestrian 5 and updated according to the rulesdescribed earlier is defined using a dynamic memory length N_(m) ^(⊥)(expressed using C++ programming convention), i.e $\begin{matrix}{{\overset{\_}{p}}_{l,h}^{\bot} = \frac{{\left( {N_{m} - 1} \right){\overset{\_}{p}}_{l,h}^{\bot}} + p_{l,h}^{\bot}}{N_{m}^{\bot}}} & (68) \\{{N_{m}^{\bot} = {{{\left( {p_{l}^{\bot} \geq \varepsilon}||{p_{h}^{\bot} \geq \varepsilon} \right)\quad?\quad \min}\left( {{++N_{m}^{\bot}},N_{\max}} \right)}:{\max \left( {{--N_{m}^{\bot}},1} \right)}}};} & (69)\end{matrix}$

[0325] The memory length N_(m) ^(|) corresponds to the number of stepsover which memory is maintained and N_(max) is set to 10. Thus, from themoment a foe 35 is detected, a collision probability memory starts to bebuilt for the pedestrian 5 for up to ten steps. Similarly, when foes 35are no longer detected, the pedestrian begins to “forget”. If no foesare detected over the course of ten consecutive steps, then there is nomemory of earlier collision information. Foe collision informationbegins to accumulate it anew when the next foe is detected. The cap oftea steps amounts to a medium-term memory and has been determinedempirically from fitting to data.

[0326] There may also be empirical rules for resetting memory. Forexample, if the environment changes dramatically in such a way that thenew conditions no longer correspond to earlier experience, a mechanismmay be used to erase memory, reset the memory length and beginrebuilding memory afresh. An example of when this may happen is if thepedestrian steps out of a concourse, characterised by busymulti-directional motion, and into a corridor, characterised byunidirectional low-volume traffic.

[0327] Thus, the updated collision probability memory becomes theperceived collision probability of the pedestrian 5 at time step j. Thisis used to derive the left-right asymmetry P^(⊥) (expressed using C++programming convention), namely: $\begin{matrix}{{P^{\bot} = {{\left( {{\overset{\_}{p}}_{l}^{\bot} \geq \varepsilon}||{{\overset{\_}{p}}_{h}^{\bot} \geq \varepsilon} \right)\quad?\quad \frac{{\overset{\_}{p}}_{l}^{\bot} - {\overset{\_}{p}}_{h}^{\bot}}{{\overset{\_}{p}}_{l}^{\bot} + {\overset{\_}{p}}_{h}^{\bot}}}:0}};} & (70)\end{matrix}$

[0328] which amounts to a measure of how much more likely it is toencounter a collision in deviating on one side of the optimalorientation as opposed to the other.

[0329] So far, the asymmetry construed by pedestrian5 is entirelydynamic, depending exclusively on its own reading of signals from itssurroundings Hence, it is fully emergent. This asymmetry is the mainreason for complex emergent patterns such as the spontaneous formationof lanes above a critical density in multi-directional environments.

[0330] Spatial or cultural bias may be introduced, should there be needfor one, using $\begin{matrix}{P^{\bot} = {\min\left( {1,{\max \left( {{- 1},{P^{\bot} + {\Delta \quad P_{bias}^{\bot}}}} \right)}} \right)}} & (71)\end{matrix}$

[0331] The term Δ  P_(bias)^(⊥)

[0332] allows introduction of a forced, rather than emergent, bias orpreference to the left or right. Such as bias may be induced, forexample using a sign “keep to the right”, or a cultural habit, such askeeping to the right in continental Europe or keeping to the left in theUK.

[0333] A preliminary range δθ_(l,h), relative to the preferredorientation θ_(j)^(i, opt)

[0334] of equation 14, may be derived using equation 45, namely:$\begin{matrix}{{\delta \quad \theta_{l\quad h}} = {\min \left( {\pi,{\max \left( {0,{{{\Delta \quad \theta_{j}^{i,l,h}} \pm \theta_{j}^{i,{opt}}} \mp \theta_{j - 1}^{i}}} \right)}} \right)}} & (72)\end{matrix}$

[0335] The left-right asymmetry is used to redistribute the angularrange from the least to the more favourable side, which leads to(expressed using C++ programming convention):

δθ_(osym)=(P ^(⊥)≧0) 2P ^(⊥)w₁δθ₁ : −P ^(⊥)w_(h)δθ_(h);   (73)

[0336] which is the range of angles to be removed from all unfavourableside and added to a favourable one. For example, an angular range isderived using equation 54. A first range of angles to be scanned forcandidate solutions is to the right of the preferred orientation and asecond range of angles is to the left. If the left-right asymmetryrelation turns out to favour the left in preference to the right, aslice of angles δθ_(asyns) is removed from the right side and added tothe left side. To the extent that the pedestrian 5 deems it more likelyto collide with a foe on the right than on the left, means that thepedestrian 5 does not look as far to the right for its next step as itwould have done if there had been no foes Instead it looks farther tothe left since collisions are less likely.

[0337] Making use if this information, the angular range is finallycorrected yielding a final range Δ  θ_(j)^(i, l, h)

[0338] of least competition, namely: $\begin{matrix}{{\Delta \quad \theta_{j}^{i,l,h}} = {\min \left( {{\delta \quad \theta_{l,h}},{\max \left( {0,{{{w_{l,h}\left( {1 - p_{l,h}^{\bot}} \right)}\delta \quad \theta_{l,h}} \mp {\delta \quad \theta_{asym}}}} \right)}} \right)}} & (74)\end{matrix}$

[0339] This is the range of angles to the right (Δ  θ_(j)^(i, h))

[0340] and left (Δ  θ_(j)^(i, l))

[0341] relative to the preferred angle θ_(j)^(i, opt)

[0342] given in equation 23 where the pedestrian 5 seeks an acceptablecandidate for the j^(th) step.

[0343] Finally, a preferentiality p_(l,h) to either side is determined,where p_(lh) take on values between zero and unity (expressed using C++programming convention): $\begin{matrix}{{p_{l,h} = {{\left( {{\Delta \quad \theta_{l}} = {{\Delta \quad \theta_{h}} = 0}} \right)\quad?\quad \frac{1}{2}}:{\frac{1}{2}\left\lbrack {1 \pm \frac{{\Delta \quad \theta_{l}} - {\Delta \quad \theta_{h}}}{{\Delta \quad \theta_{l}} + {\Delta \quad \theta_{h}}}} \right\rbrack}}};} & (75)\end{matrix}$

[0344] The higher the value of p_(l,h), the higher the preferentiality.

[0345] The density of friends and the effect of synchronization will nowbe described in more detail.

[0346] First, an instantaneous density u_(x) of friends per quadrant ofthe test area 29 is translated into a strength of cooperation, admittingvalues between zero and unity.

u _(l)=min(l,ρ _(x)α_(l))  (76)

[0347] The larger the more likely to be forced to synchronize). Asexplained earlier, cooperation arises as-and-when needed, i.e.instantaneously. It does not help to prevent errors in the future theway the collision probability does. Thus no memory of it is kept.

[0348] A weighted average of step length {overscore (l)}_(x), orequivalently speed, of all the friends in the neighbourhood (perquadrant) is estimated. $\begin{matrix}{{\overset{\_}{l}}_{x} = \frac{\sum\limits_{\underset{{x = I},{II},{III},{IV}}{k \in {({\text{friend in qudrant}\quad x})}}}{l_{j - 1}^{i}w_{k,j}^{\parallel}w_{k,j}^{prox}}}{\sum\limits_{\underset{{x = I},{II},{III},{IV}}{i \in {({\text{friend in qudrant}\quad x})}}}{w_{k,j}^{\parallel}w_{k,j}^{prox}}}} & (77)\end{matrix}$

[0349] Slower neighbours behind the pedestrian do not matter becausethey do not catch up. Likewise, faster neighbours ahead do not mattersince the pedestrian does not catch up In either cast, the pedestrianmay continue walking at their preferred speed

[0350] Faster neighbours behind, on the other hand, can have a chasingeffect. They may exert pressure on a pedestrian ahead of them to eithermove faster or get out of the way. Likewise, slower neighbours in frontmay force an undesirable slowing down. Hence, synchronization isrelevant when there are slower neighbours in front or faster neighboursbehind

[0351] This bias is reflected in forward and backward synchronisationweights, u_(I, IV)^(′),

u_(II, III)^(′)

[0352] (expressed using C++ programming convention), namely.$\begin{matrix}{{u_{I,{IV}}^{\prime} = {{\left( {{\overset{\_}{l}}_{I,{IV}} > {l_{j}^{i,{opt}}(\theta)}} \right)\quad?\quad 0}:u_{I,{IV}}}};} & (78) \\{{u_{{II},{III}}^{\prime} = {{\left( {{\overset{\_}{l}}_{{II},{III}} < {l_{j}^{i,{opt}}(\theta)}} \right)\quad?\quad 0}:u_{{II},{III}}}};} & (79)\end{matrix}$

[0353] The forward and backward synchronisation strengthu_(I, IV)^(′)u_(II, III)^(′)

[0354] depend on the density of friends and the degree of alignment oftheir orientation with the desired orientation of entity i

[0355] To the extent that u_(I, IV)^(′)

[0356] and u_(II, III)^(′)

[0357] impose external synchronization due to dynamical externalconditions in the neighbourhood outside the pedestrian's control, thepedestrian is forced to degrade the weight of its own free will, i e tomaintain the preferred step length or preferred speed This leads to aweight of the pedestrian's own free u_(op), which is updated aftertaking into account external constraints, namely: $\begin{matrix}{u_{opt} = {1 - u_{I,{IV}}^{\prime} - u_{{II},{III}}^{\prime}}} & (80)\end{matrix}$

[0358] Combining the weights of the various components, another estimatemay be made of the feasible step length l_(l, h)^(i, j)

[0359] on the basis of its own desires adjusted to external constraints(expressed using C++ programming convention), namely: $\begin{matrix}{l_{l,h}^{i,j} = {{{\left( {u_{opt} > 0} \right)\quad?\quad u_{opt}}{l_{j}^{i,{opt}}(\theta)}} + {u_{I,{IV}}^{\prime}{\overset{\_}{l}}_{I,{IV}}} + {u_{{II},{III}}^{\prime}{{\overset{\_}{l}}_{{II},{III}}:\frac{{u_{I,{IV}}^{\prime}{\overset{\_}{l}}_{I,{IV}}} + {u_{{II},{III}}^{\prime}{\overset{\_}{l}}_{{II},{III}}}}{u_{I,{IV}}^{\prime} + u_{{II},{III}}^{\prime}}}}}} & (81)\end{matrix}$

[0360] Thus, the pedestrian will no longer strive to achieve theunrealistic step length l_(i)^(i, opt)

[0361] which it would have preferred based on equation 21. Whilesearching for a compromise solution, l_(j)^(i : opt)

[0362] becomes the “adjusted” preferred step length which is inserted inplace of the preferred step length when minimising the fulldissatisfaction function. By contrast, the instantaneous preferred speedand resultant instantaneous preferred step length were used whenminimising self-dissatisfaction during the first stage. By now, thepedestrian has deemed this preference unrealistic and, after taking intoaccount local information, has learned what is realistic and adjustedtheir speed preference accordingly. Thus, it considers a more realisticstep length l_(l, h)^(i, j)

[0363] which is the best it can do given the synchronization constraintsimposed upon it by the environment

[0364] A threshold l_(thr), empirically set to 5 cm, is introduced toprevent agitation for the conditions: $\begin{matrix}{{{{if}\quad \left( {l_{l,h}^{i,j} < l_{ihr}} \right)\quad l_{l,h}^{i,j}} = 0};} & (82)\end{matrix}$

[0365] This may be used, for example, in situations where pedestriansfile into a bottleneck and the adjusted step length turns out to beextremely small. According to equation 82, if the feasible step lengthturns out to be less that the threshold, pedestrians consider themselvesblocked and maintain their previous position until their neighbourhoodclears. When the neighbourhood clears a longer step length is allowed.

[0366] A step length deficit δ  l_(l  h)^(i, j)

[0367] is defined as: $\begin{matrix}{{\delta \quad l_{l\quad h}^{i,j}} = \frac{{l_{l,h}^{i,j} - l_{j}^{i,{opt}}}}{l_{l,h}^{i,j} + l_{j}^{i,{opt}}}} & (83)\end{matrix}$

[0368] and is a normalised measure of the difference between theadjusted step length and the preferred step length, taking valuesbetween 0 (when the preferred and feasible lengths identical) and 1(when the difference between preferred and feasible step lengths isgreatest. It is a measure of preferentiality of the adjusted step length

[0369] A preferentiality of one side over the other may be defined(expressed using C++ programming convention) using $\begin{matrix}{{q_{l,h} = {{\left( {{\delta \quad l_{l}} = {{\delta \quad l_{h}} = 0}} \right)\quad?\quad \frac{1}{2}}\quad {\frac{1}{2}\left\lbrack {1 \mp \frac{{\delta \quad l_{l}} - {\delta \quad l_{h}}}{{\delta \quad l_{l}} + {\delta \quad l_{h}}}} \right\rbrack}}};} & (84)\end{matrix}$

[0370] Preferentially uses the proximity of an apparent feasible steplength on either side to one's own preference as a criterion. If thepreferentiality for both left and right is the same, then q_(l)=q_(r)=½

[0371] The second stage of micro-navigation ends with the determinationof a favourite side, right (l) or left (h), namely $\begin{matrix}\begin{matrix}{Q_{l,h} = {q_{l,h}p_{l,h}\alpha_{I,{IV}}^{f}}} \\{{{{if}\quad \left( {Q_{l} > Q_{h}} \right)\quad j} = l},} \\{{{{else}\quad {if}\quad \left( {Q_{l} < Q_{h}} \right)\quad j} = h};} \\{{{{else}\quad j} = {\left( {{{mdm}{()}} > 0.5} \right)\quad?\quad {l:h}}};}\end{matrix} & (85)\end{matrix}$

[0372] In the case of a draw, a dice is thrown

[0373] In summary, the second stage of micro-navigation establishes anangular range for a search, for deviations on either side of the idealorientation while looking for an acceptable candidate, adjusts thepreferred speed (or step length) to a feasible speed as close aspossible to the pedestrian's preferred speed and determines thefavourite side from which to launch the search.

[0374] Micro-navigation: Stage III

[0375] During the first stage of micro-navigation, self-dissatisfactionis minimised so as to identify a preferred step to a preferred position.If the preferred position is available and no discomfort is associatedwith it, the pedestrian can proceed to take this step However, if eitherthe preferred position is unavailable or there is some discomfortassociated with it due the presence of either offending neighbours orfixed obstacles then the second and third stages are brought into play.

[0376] During the second stage of micro-navigation, upper and lowerangular bounds are found relative to a preferred orientation. Betweenthese angular bounds candidate solutions may be sought. Finally, it isdetermined which side (left or right) of the preferred orientationappears preferable when looking for a candidate solution first. Thus asubspace is defined. Moreover, the preferred speed requirement isadjusted for each side to reflect dynamical conditions imposed upon thepedestrian by its surroundings, to a value that appears more reasonableto attempt to achieve on the basis of local conditions.

[0377] During the third stage, a detailed search is performed todetermine and execute the pedestrian's next step This will now bedescribed in more detail:

[0378] Referring to FIG. 17, the pedestrian 5 has a preferredorientation θ_(j)^(opt)

[0379] indicated by reference numeral 36.

[0380] A final search is begun starting from the preferred orientationθ_(J) ^(opt) and turning towards a preferred side 37, for example to theright, a solution is sought which minimizes the total dissatisfaction ofequation 40 This comprises solving equations of motion, namely:$\begin{matrix}{\left. {\frac{\quad}{l}\Delta \quad J_{T}} \right|_{l_{j},\theta_{j}} = 0} & (86) \\{\left. {\frac{\quad}{\theta}\Delta \quad J_{T}} \right|_{l_{j},\theta_{j}} = 0} & (87)\end{matrix}$

[0381] A heuristic algorithm is used to solve the equations of motion.

[0382] This is contrasted with minimization of self-dissatisfactionduring the first stage of micro-navigation, which results in a preferredorientation angle and step length.

[0383] The main difference is in that whereas the preferred solution isobtained in a self-referential manner without regard to the possiblepresence of neighbours and obstacles, the final solution takes theseinto account. In particular, the presence of offending neighbours andobstacles now induces discomfort.

[0384] A search for a compromise step is conducted varying orientationangle θ^(i) _(j) and step length l¹ _(j)

[0385] Starting from the preferred angle θ_(j)^(i, opt)

[0386] and turning first towards the preferred side determined usingequation 85, step length l is varied starting from l=0, i e the currentlocation. At each orientation angle θ^(i) _(J), a check is made iswhether there are any entities or obstacles impeding passage If thereis, then the step length l^(l) _(J) is varied only as far as the entityor obstacle. Otherwise, the limit is the adjusted step lengthl = l_(l, h)^(i, j)

[0387] The search continues on the preferred side as up to the limitθ_(j)^(i, opt) + Δ  θ_(j)^(i, l, h).

[0388] All the candidate solutions corresponding to incremented steplength along the currently tested direction are evaluated. This isachieved in a similar way as described earlier and comprises determininga personal space where now the current step length relative to theposition of origin is treated as the actual step length. Thus, the formof personal space is no longer uniform along the path tested in thecurrent direction. A search is performed within the personal space forother pedestrians 21 or obstacles 25. Only sufficient space for passage,or accommodating the entity's physical rather than personal space, isrequired up to the currently tested position. The full dissatisfactionfunction is thus evaluated, including discomfort, as obtained for thepersonal space form corresponding to the currently tested angle and steplength in the search. Only the best candidate, namely that of leastdissatisfaction, is considered per tested angle If the candidate isassociated with zero discomfort, then the search ends Otherwise, thebest candidate for the current angle is tested against the bestcandidate of angles tested so far and the “best so-far candidate”information is updated. The search continues until a zero-discomfortcandidate is found or the search is exhausted, whereupon the “bestso-far” candidate is the winning candidate for a compromise solution.

[0389] There are some differences between the first stage and thisstage, when determining a preferred step

[0390] Firstly, in the first stage, only a position at the end of thepreferred step is considered as a final destination. In this stage, aplurality of positions, starting at the current location and ending at aposition at the end of a step having the adjusted step length, isconsidered as a possible final position for the step.

[0391] Secondly, in first stage, personal space is translated along thepreferred path and, as this is done, a check is made as to whetherneighbouring entities or obstacles infringe it. In this stage, personalspace is not translated A check is made as to whether neighbouringentitles or obstacles infringe the personal space in respect of acandidate step under consideration.

[0392] Should the search toward the favoured side be exhausted without aconclusive success, i.e no solution with zero discomfort, the searchcontinues on the other less-favoured side with continuous updating ofthe best candidate over the current search. If the entire searchsubspace is scanned without success the entity misses a step, i.e. it isbottlenecked and cannot move until more space becomes available.

[0393] The first class-dissatisfying candidate to be found, amounting tothe nearest local minima of equations 86 and 87 is accepted, unlessnegotiations with interfering offending neighbours result in yieldingFor example, in the situation illustrated FIG. 18, the paths of a friend34 and a foe 36 cross into the search subspace 38. If the solutionobtained by equations 86 and 87 results in a path from the pedestrian'scurrent position to the proposed position which crosses the projectedpath of a neighbour, then collison-avoidance negations are engaged.

[0394] Collision avoidance may be implemented using a game theoryalgorithm. If the outcome of collision avoidance algorithm is to yieldto a neighbour, then the search is interrupted and the pedestrian losesa step, a compromise is worked out between the negotiating entities orthe proposed solution is rejected and the search continues towards lessfavourable solutions.

[0395] The method of simulating movement of an entity is used in asimulator and apparatus for designing a venue, as will now be describedin more detail:

[0396] Design System

[0397] Hardware

[0398] Referring to FIG. 19, a design system is implemented on apersonal computer 39, a display monitor 40, storage for a projectarchive 41 and A system database 42. The personal computer 39 may beworkstation or desktop PC and may have a Pentium IV class processor withclock speeds about or above 1.5 GHz and 512 MB of random access memory.

[0399] The personal computer 39 loads and runs a computer program, whichperforms the method of simulating movement of the entity The computerprogram may be stored on a computer readable medium, such as a compactdisc, or downloaded form a computer server.

[0400] Referring to FIG. 20, the design system may alternatively beimplemented using a client computer 43 and a server computer 44. Theclient computer 43 is connected to the server computer 44 via a network45, such as the Internet The project archive 41 is local to the clientcomputer 43 and the system database 42 is local to the server computer44 A user database 46 is also provided locally to the server computer44.

[0401] Architecture

[0402] Referring to FIG. 21, a system architecture 47 for performing themethod of simulating movement of an entity as herein described is shown.

[0403] The system architecture 47 is divided into a Universal UserInterface (UUI) 48 and a Data, Simulation, and Analysis Framework (DSAF)49.

[0404] The UUI 48 provides an interface for between a user and modeldesign, simulation and analysis systems. The UUI 48 provides projectmanagement, data input, and data visualization systems.

[0405] The DSAF 49 a Data Storage System (DSS) 50 and aSimulation-Analysis Library (SAL) 51

[0406] The DSS 50 includes a set of systems that are used by the UUI 48and the SAL51 to access and store data used in the system. The DSS 50comprises the project archive 41 and the system database 42.

[0407] The system database 42 stores empirical measurements for definingsimulation object properties and entity characteristics The database 42is divided into two sections A first section 42 ₁ houses systemcertified measurements and a second section 42 ₂ houses user-definedcontent which is intended to be used across multiple projects Asdescribed earlier, the database 42 may be implemented on a local mediumor as a relational database via the server 44

[0408] The project archive 41 is a file-based system for storing modeldesigns and simulation data that are specific to one project.

[0409] This SAL 51 is a collection of objects and algorithms that areused to process a fully defined model into simulated data, and analyseand interpret the output. The DSAF 49 is an underlying set of softwarelibraries that allow components to communicate and operate together

[0410] UUI 48

[0411] The UUI 48 provides means for a user to interact with allcomponents of the system The UUI 48 comprises a set of MicrosoftFoundation Classes (MFC) controls, dialogs and displays that are used tocarry out tasks for creating and processing a simulation.

[0412] The UUI 48 includes a core graphics rendering engine, a CADinterpreter, such as .dxf parser, project archive browser, a set ofmodel objects and property dialogs used in their specification, a datamanager, a quality assurance wizard and various toolbars andorganizational constructs to facilitate use. The UUI 48 operates underthe following modes of interaction model design, simulation, analysts,data management and browsing. These modes can be selected by the userand are automatically detected in some cases through the context of aspecified action.

[0413] Model Design is the process of transforming a venue design into aform that can be processed using the SAL 51. To build a model, a usercreates or imports a design from a CAD source, supplies additional datafor the simulation of the model and performs error checking and qualityassurance on the resulting design. At each step in this process anyresulting model is stored in the project archive 41.

[0414] A model can be described as an environment with a set ofobstacles, such as walls, benches, buildings etc., a population and aschedule of events that occur over a specified time interval Aspecification of a model is determined by a set of geometricalprimitives describing the environment and a set of profiles and objectdefinitions describing the population and other dynamic elements in themodel. A primitive environment and obstacle geometry are supplied by theimported venue design. The remaining items are specified by the user viaa model design interface. The specification of these items isfacilitated via a component of the interface called A Data Manager (DM)

[0415] The function of the DM is to provide an interface that allows theuser to access, define and manipulate empirical simulation object dataused in the application. The components of the data manager include anMFC control for importing data from generic file formats, such as commaseparated value (CSV)), and performing data cleansing operations The DMalso provides a suite of dialogs used to specify the characteristics ofthe various simulation objects and/or access existing values from thesystem database 42. The data stored in the database are logicallyorganized into relational trees that map a unique key to each storedvalue This allows the UUI 48 to maintain lists of the available contentvia the data keys without requiring that the entire database be loadedinto memory. When a user wishes to specify details for an object, he ispresented with an interface showing the values that are available in thesystem database 42 for a particular object type. The user may specifythe object's parameters simply by associating the object with the key tothe data stored in the database. The actual data are loaded whenrequired for the performance of a simulation or analysis within the SAL51, or if requested for visualization within the UUI 48. The user alsohas the option to manually define object parameters with custom contentIn this case, the user is given the option to store any custom objectsin the database so that they may be available in other projects

[0416] The simulation process requires that a model pass a series oftests in order to be verified as simulation-ready. Failure to pass thesetests results in a model that will have unexpected results undersimulation. In order to help users avoid mistakes a quality assurancewizard (QAW) is used to verify the model and/or the imported CAD designThe QAW is able to identify flaws or incomplete specifications in amodel's design. The QAW begins by performing a battery of tests on themodel and then presenting a series of dialogs which show any issuesfound. Users interact with the provided interfaces and are able toaffect any necessary corrections

[0417] The project archive 41 is a file that provides persistent storagefor project-specific model designs and simulated data The projectarchive 41 logically belongs to the DSAF framework. Objects that can bescored in the archive include full or partially specified model designs,simulation results, and analysis macros. The project archive browser isa UI extension to the archive that allows users to view the contents ofan archive and interact with them in various ways. The browser isimplemented as a class which inherits from the MFC tree control whichuses a directory tree to display the contents of the archive Users canselect objects within the browser and have them opened up in the UUI inthe correct context. For example, models are opened in either modeldesign/simulation mode, simulation results are opened in analysis mode

[0418] Simulations are executed by loading a model definition from theproject archive 41 and processing it with the SAL 51 The simulationinterface in the UUI comprises a visualization system and a toolbarcontrol that allows users to play, stop, pause, restart, and record thesimulation. The simulation is displayed as a sequential set of snapshotsshowing the current position of each entity in the model as itprogresses over time. At each time step, the simulation algorithmsperform various calculations and update data tables which may be used inonline analysis and/or stored in the project archive 41 and later usedfor offline analysis. Alternatively, they can be generated on demandduring replay from the minimal set of data stored in the project archive41 by default. Analysis of the simulated data is accomplished using asystem where the user specifies a region of interest using either apolygon (for areas) or a polyline (for lines). After the user hasspecified a region, he must associate a function or set of functions tobe performed on the entities inside or crossing (he region over aspecified range of time. As the simulation progresses, the data fromeach analysis region are updated and shown using the UUI datavisualization system. For example, a user may be simulating a largevenue such as a football stadium. However, the user may be interested inviewing statistics dealing with a very small portion of the area thatlies around a food vendor. The user is able to filter the data to thisexact region by placing an analysis polygon around the zone of interestThen by specifying an associated filter, the user will be presented withonly the requested data.

[0419] DSAF 49

[0420] The DSAF 49 is a set of underlying software libraries thatimplement the utilities and communication infrastructure of the entiresystem. Constituent libraries of the framework may include both 3^(rd)party and in-house developed libraries, namely:

[0421] ROOT

[0422] a I/O system

[0423] Interface Library

[0424] b DSS

[0425] c. Root Manager

[0426] d Neutral Data Structures

[0427] Simulation and Analysis Library (SAL)

[0428] e. Object-Oriented simulation objects and containers

[0429] f Simulation and Analysis algorithms

[0430] Geometry Library (GeoLib)

[0431] g. Geometrical primitives

[0432] h. Geometrical algorithms

[0433] The ROOT library is a comprehensive data analysis system based onan object-oriented framework that is used for simulation and analysis inparticle physics. ROOT has classes for performing data analysis coupledwith a system for space intensive data handling and I/O (input/output).The classes borrowed from the ROOT library are TFile and TTree, whichtogether form an object serialization and I/O package. The I/O systemuses a premise called object serialization, which is the process ofconverting a memory-resident instance of a class into an array of bytedata which can then be stored. The process is reversible and results ina method which allows the persistent storage and retrieval of programobjects. The requirement for building serialized objects is that theremust be some definition of a class cast in such a way that theserializing system knows how to translate an instance of an object intoa serialized form. ROOT maintains a system for automatically generatingthese definitions which are called class dictionaries The TFile classimplements file based storage for collections of serialized objects. TheTTree class extends this functionality by supplying a framework forstoring and accessing large collections of these objects using randomaccess iterators. The cost of using these classes in our framework liesin dealing with an incompatibility between ROOT and the MFC librariesused in the UUI. In the current version ROOT is used only as a matter ofconvenience. Future versions may dispense with the use of ROOT in favorof a home-grown solution for I/O and object serialization.

[0434] DSS 50

[0435] The system uses a database to store measurements of thecharacteristics of the objects and entities that are used in modelspecification. As explained earlier, the database may be implementedusing two schemes One scheme uses a network-server-based solution, andthe other a file-based system which resides on a local medium.

[0436] The network based system uses the SAP-DB Open Source Releasedeveloped by SAP and released under the Gnu Public License (GPL). Thefile based system uses the I/O system from ROOT, a scientific library insupport of particle physics applications developed at CERN and releasedunder an open source license. The system database 42 is implemented as asingle relation indexed by a key which maps to a set of properties foreach object instance. The database has three different interfaces whichprovide different levels of access and models of use. The basic mode ofaccess is user-level which is defined mi a class called UserDBSession. Auser session is allowed read-only access to system data keys and fullaccess (read, write, delete) to user-defined data. The user based modeis typically used for retrieving lists of the available data in thedatabase, and for managing any custom content defined by the users. Thesecond mode of access is used by the SAL and is defined in a classcalled StimDBSession. The SAL has read-only access to system data anduser-defined data. The SAL only accesses the database to retrieve thoseitems that are required to perform a simulation. The third mode ofaccess, defined by a class called SystemDBSession, is used in buildingthe system database 42. This interface provides full access and controlover anything in the database and is used to manage the system database42 contents. The second aspect of the DSS is the project active 41 whichis implemented via the RootManager class. The use of either SAP DB orthe ROOT based TFile are not binding, and other solutions are possibleand may be implemented in future releases

[0437] In order to accommodate the ROOT-MFC incompatibility, a wrapperclass called RootManager is created to act as an interface and buffetbetween the two libraries The purpose of the RootManager class is toreader the functionality of the ROOT library accessible from within aconflicting namespace such as MPC (in this context, conflicting refersto platform neutrality as well as the compatibility of two librarieswhen compiled together.) The I/O system from ROOT is used in conjunctionwith RootManager to implement the project archive 41. The projectarchive 41 is a file, based on ROOT's Tfile class and is created andmaintained via RootManager. The structure of the project archive 41 isreached as a set of directories each used for storing a particularobject type The directories include categories for model definitions andsimulation and analysis results. RootManager provides a wrapperinterface that allows for the creation, access, and manipulation ofthese files that can be used from within the UUI As stated earlier, oneof the costs of implementing the ROOT I/O system is caused byincompatibilities between ROOT and MFC. This limitation extends to allclass dictionaries generated by ROOT for the purpose of objectserialization. In order to have access to such objects within the UUIframework and reap the benefits of the ROOT I/O system, a twin set ofobjects were created that allow full disclosure of such class contentswithin the UUI, and a system for transforming said objects into amirroring format that can be used in conjunction with ROOT classdictionaries for object serialization. The classes consist of a set ofclasses called the Neutral Data Structures along with a correspondingset of mirror classes called the IO Data Structures.

[0438] A Neutral Data Structure refers to a class whose members consistof only native types (int, float, char etc) or objects generated byhome-grown utility libraries (e g. could contain GeoLib objects) Byfollowing this paradigm any such data structure can be passed betweenplatforms in a wholly independent and neutral fashion. The neutral datastructures are the classes that are used within any endpoint componentof the framework. Whenever any such object must be stored persistently,it is transformed into an IO data structure and written to the projectarchive 41. Upon retrieval, such objects are recast into a neutralformat before being given to the requesting application. The advantageof using this method is that the objects are utilizable within anycomponent of the system without the need to affect translations orchanges to the objects. In cases where the components use a sharedmemory, these objects can be directly referenced by each component.

[0439] The SAL consists of the set of algorithms and data structuresthat are used to process a model definition into a set of simulationdata, analyze, and interpret those data The simulation process beginseither when a user selects a fully specified model from the projectarchive 41 or chooses to execute one already in memory.

[0440] Before the simulation is executed, the user is given the optionto record the results of the simulation in the project archive 41. TheUUI provides a toolbar interface which allows the user to play, pause,and inspect individual entitles as well as access complex analysisfunctions and visualizations via the aforementioned analysis toolkit. Inaddition to the simulation algorithms, the SAL defines a set of classesused to describe the objects and data used in a simulation calledProfiles

[0441] A Geometry library (GeoLib) comprises two parts, one implementinga basic set of geometrical primitives, and the ocher implementingspecialized algorithms which deal with these primitives. The GeoLibprimitive library includes objects to describe points, segments,polylines and polygons, circles, and arcs. These objects follow theneutral structure paradigm and are used within the system whenever anobject is needed to define some geometrical property The algorithmslibrary consists of a toolkit of specialized and generic algorithms usedin managing various problems that are encountered in computationalgeometry. These algorithms include collision/intersection detection,segment overlapping, determination of geometrical encapsulation, andvarious sorting routines.

[0442] Process for Designing a Venue

[0443] Referring to FIG. 22, a process for designing a venue will now bedescribed.

[0444] Before any venue is designed, a database of measurements thatdescribe characteristics of a population in various venues is built andmade available to the system (step S1).

[0445] Then the process of designing a venue can begin

[0446] A first or successive version of a design of a venue is provided.

[0447] The user launches the UUI 48 and either imports or manuallyspecifies an architectural specification for a particular venue (stepS2). The design of the venue is amended through a process thattransforms it into a fully defined model that is able to be simulatedand analysed using the SAL 51 (step S3). A simulation, is performed onthe model and may be viewed, analysed and recorded by the user (step S4)The user will usually return to step S3 to make refinements and improvethe model using the results of the simulation visualization and onlineanalysis as feedback. During simulation a limited set of simulatedmeasurements are calculated and stored in the project archive 41. Theuser has the option of analysing these data further either on-line oroff-line (step S5). Any such data derived by the user may also be storedin the project archive 41 in a raw format or as in human-readablereports.

[0448] If the simulation indicates that the design of venue is in someway deficient, then the venue can be re-designed. It is preferable thatthe results of the simulation are used to re-design the venue.Additionally or alternatively, a process of “trial-and-error” may alsobe used.

[0449] The process for designing a venue will now be described in moredetail in terms of preconditions, processing and post conditions:

[0450] Step S1. System Measurements

[0451] A research team identifies which measurements are needed, plans ameasurement schedule, performs experiments, collects empirical data andanalyses it. Based on the analysis, the research team suppliessimulation objects and profiles via a database interface (provided byDSS 50) to be stored in the system database 42.

[0452] Profiles are data structure, that contain distributions ofmeasurements that describe a single characteristic of a particularspecies or subspecies within a population. These characteristics mayinclude data for walking speeds, personal space preferences, size, etc.The term “species” is used to refer to the entire population within asingle venue and locale. The term “subspecies” is used to refer to asubset of the species that has been constrained to contain only certainindividuals, for example men, tourists, etc.

[0453] Step S2: Venue Design

[0454] The user provides a detailed description of the venue, whichusually takes the form of an architectural design, together with aspecification of the constituents that make up a population to beconsidered and schedule data describing the dynamic aspects of the venueThe designs may be created using the UUI 48 or imported from priorsources.

[0455] Referring to FIG. 23, a CAD file of a design of a corridor 52 iscreated or imported In this case, the CAD file is in a .dxf file format.For the purpose of illustration, a general path 53 is shown between anentrance 54 and an exit 55.

[0456] Referring to FIG. 24, if a template is used, then markers 56 maybe placed to aid design.

[0457] Referring to FIG. 25, details regarding properties of the model,such as mode dimensions, are supplied through dialog boxes.

[0458] The file is loaded into the UUI 48, converted into aninternally-used format, herein referred to as a “.lgm” format, andstored in a project archive 41. Processing may include annotations tothe CAD design in the form of data cleansing and geometrical correctionsdone for quality assurance.

[0459] The project archive 41 is now ready for processing into a modelready for simulation.

[0460] Step S3: Model Design

[0461] The project archive 41 comprises an initial description of thevenue to be simulated. Processing of the model design comprises definingthe participant entities and objects to be used in the simulation,specifying event schedules, defining entity sources and sinks, such asentrances, exits, supply rates and limits, creating a high leveldescription of how the simulation should be realized It usually includesmultiple transactions with the project archive 41 and possibly thesystem database 42 as the model is built and its persistent state in thearchive is updated.

[0462] Transactions with the system database 42 may include downloadingpertinent data for designing a model, or uploading custom objects sothat they may be available for later reuse.

[0463] Thus, a version of the model is fully specified and is stored inthe project archive 41 in a ‘ready-to-run’ state It may be run in asimulation or reopened for further construction and refinement

[0464] Referring to FIG. 26, in a model design mode of interaction, arectangular entrance 58 is defined. This may involve drawing and“snapping” a rectangle to the corners of the corridor

[0465] Referring to FIGS. 27 and 28a and 28 b, properties of theentrance 58 are defined via a dialog box 59. For example, this mayinclude defining a pulse train 60 in terms of duration and flow whichare entered through t dialog box 61.

[0466] Referring to FIG. 29, a rectangular exit 62 is also defined.Again, this may involve drawing and “snapping” a rectangle to thecorners of the corridor

[0467] Referring to FIG. 30, a model 61 of the corridor is shown. Theuser links the entrance and exit and a line 62 is defined between astart point 63 with an intended destination 64

[0468] The file is saved, fox example in dxf format and qualityassurance may be performed. The file is also saved as a simulation file,for example with an extension “.ora”, in project archive 41

[0469] Step S4: Model Refinement, Simulation and Online Analysis

[0470] A simulation engine loads the model specification, in the form ofthe simulation file, from the project archive 41 and performs asimulation using the method of navigating according to the presentinvention. At discrete steps in the simulation, data are stored in theproject archive 41, for example in the form of a “.res” file, that canbe used to ‘replay’ the simulation at a later time and perform off-lineanalysis. The user may view the simulation as it runs and has the optionto perform online analysis

[0471] After a stimulation is completed, the user has a minimal set ofdata generated by the simulation that is stored in the project archive41 by default. The user may also optionally have stored reportsgenerated from any online analysis performed during the simulation.High-level detailed data may be generated on-line or off-line from theminimal set in the project archive 41

[0472] Step S5: Offline Analysis and Report Generation

[0473] The user interacts with a recorded session of a simulation andperforms analysis using the recorded data. Additional data are generateddepending on the analysis procedure specified by the user These analysisdata are then organized into reports and are finally generated in ahuman-readable format specified by the user. It is not mandatory thatany analysis be performed off-line In most cases off-line analysis willonly be performed on large models due to performance constraints

[0474] The project archive 41 contains the results of the analysis, andany customized analysis scripts/macros created by the user in anautomated menu supplied in the UUI 48. Reports generated from theanalysis may be stored in the project archive 41 or on disk.

[0475] Referring to FIG. 31, an example of a path 65 of a pedestrianthrough the corridor 52 at 600 ms intervals is shown.

[0476] In the example described above, macro navigation is very simplebecause a single intended destination 66 is defined.

[0477] However, as described earlier, a more refined (but still simple)method of macro-navigation may be used, employing intermediate intendeddestinations.

[0478] Referring to FIG. 32, the user may divide the corridor 61 usingguide lines 68 ₁, 68 ₂.

[0479] Referring to FIG. 33, a pair of intermediate destinations 69 ₁,69 ₂, referred to here as foci, are defined in when defining the model.Corresponding areas 70 ₁, 70 ₂, referred to here as focal drift zones,are also defined When located in the first focal drift zone 70 ₁ theuser drafts towards the first focus 69 ₁. Likewise, when located in thesecond focal drift zone 70 ₂ the user drifts towards the second focus 69₂. A requirement is also set that a pedestrian should be at least 0.5 mfrom a wall.

[0480] Referring to FIG. 34, the focal drift zones 70 ₁, 70 ₂ are showntogether which the preferred orientation angles 71 ₁, 71 ₂.

[0481] The model is stored and run by the simulator, this timenavigating the pedestrian from one intermediate destination to another

[0482] Referring to FIG. 34, a revised path 65′ of a pedestrian throughthe corridor 52 at 600 ms intervals is shown.

[0483] Having examined the simulation, the designer may consider thatthe time taken to pass down the corridor is too long. To reduce thetime, they may decide to “round-off” corners, introduce a straighter orwider corridor.

[0484] It will be appreciated that more complicated models may bedefined using a plurality of entrances and exits and more detailedmodels. For example, a more complicated model of a corridor usingbi-directional flow, may show that pedestrians ate likely to bump intoone another. This may prompt the designer to make appropriate changes indesign or consider the use of signs or barriers to guide pedestrians.

[0485] Simulator

[0486] Referring to FIGS. 36, 37 and 38, a process flow diagram is shownof the method of simulating movement of an autonomous entity through anenvironment. For example it may be used to determine the path taken bythe pedestrian through the corridor as described earlier. Parts of theprocess are described in more detail above.

[0487] The simulator is initialised (step S5) and includes loading themodel including spatial information regarding the venue (step S5.1) anddetermining zones, for example by partitioning the venue into differentregions, such as waiting zones and drift zones (step S5.2). Attributes,as specified during model building, are ascribed to the zones. Timersare generated (step S5.3). These include timers for controllingarrival/departure profiles from the demand data and timers associatedwith objects either supplied by the user or established experimentallyfrom measurements These later timers may include waiting times forentities buying a ticket from a vending machine, getting informationfrom an information booth or consulting a bulletin board.

[0488] Initialisation also includes retrieving information from thesystem database 42 (FIG. 20) needed to generate profiles used in thesimulation and generating new profiles from existing profiles (stepS5.4). Entities are represented by one of these profiles. The methodincludes populating the zones (step S5.5) by dispersing entitiesthroughout the venue Each entity has a profile and a destinationobjective. Thus, this provides a snapshot of the venue at time zero,when the simulation starts.

[0489] In the example described above, macro-navigation is “hardwired”Nevertheless, macro-navigation may be more sophisticated and maycomprise calculating lowest-order optimal paths associating every pointin the venue with every destination objective specified in the model viaa suitable direction angle (step S5.6). This comprises calculating acontinuous field per destination objective, from where entities willsubsequently seek their θ₀ at each step throughout the simulation. Thisinformation is stored as multi-layered spatial grids.

[0490] Finally, initialisation includes calculating the number of timesteps (jj) for the simulation (step S5.7) This may be calculated bydividing a duration specified by the designer, for example 6000 seconds,by the step duration 0.6 seconds.

[0491] The simulation then begins at the first step (step S6).

[0492] New entities are created at entrances according to so-called“demand data” specified by the user during model building (step S7). Thedemand data specifies arrival distributions as a function of time,broken down by profile and objective. For example, for a railwaystation, data are supplied relating to the distributions of peoplearriving at various entry points, with percentages of profilesrepresented in these populations, such as male commuters, touristcouples etc, as well as percentages of people with certain objectives,such as heading to a particular platform to catch train departing at aparticular time. Entities are also eliminated when they exit thesimulation, for example through an exit or departing train.

[0493] Generating an entity comprises randomly positioning a new entityjust outside an entrance and attributing to it a destination objectiveand profile as prescribed by the: demand data, and also attribute to itrandomly drawn values from appropriate attribute continuous distributionfunctions pertaining to the profile which represents the entity.

[0494] For example, a profile defined by a locale, such as the UK, andvenue, such as a railway station, has associated with it a plurality ofdistribution functions including preferred speed, spontaneous speednoise, clearance tolerance, clearance tolerance noise, physical spaceradius and, optionally, luggage area. Thus, generating an entity for aUK train station comprises randomly drawing a value of preferred speed,a value of clearance tolerance, a value of physical size and,optionally, a value of luggage size form respective distributionfunctions and positioning the entity at an initial position lust outsidean entry point at a time commensurate with the “demand data”Subsequently, on its first successful step the entity will enter thesimulated venue and proceed to advance toward its destination objectiveas described earlier. The number of entities is updated (step S8). Theorder in which entities are considered and moved is shuffled (step S9).However, there may be regions where entities synchronised and this maybe corrected (step S9).

[0495] A first entity is chosen and the process of determining a stepbegins (step S10).

[0496] A value of instantaneous speed v₁ ⁰ is determined based uponpreferred speed v₀ and a freshly obtained value of preferred speed noiseδv_(J) ⁰ (steps S11 to S13).

[0497] Macro-navigation provides an orientation angle {circumflex over(θ)}₀ ^(J) (step S14) The entity recalls information regarding theprevious step, namely previous step length l_(J−1) and previousorientation angle θ_(J−1) (step S15). A preferred step may then bedetermined in terms of preferred orientation θ_(j)^(opt)

[0498] and preferred step length l_(opr) (step S16). A new position isthen determined (step S17).

[0499] A process of determining whether the preferred step can be takenis executed (steps S18 to S35).

[0500] This comprises determining a test area 29 (FIG. 15) andidentifying neighbouring entities and obstacles within the test area 29(steps S18 to S20). The position and identity of the entities is storedin a spatial grid, which is updated at the end of a step Identifyingneighbouring entities comprises overlaying said test area and said grid.

[0501] A density of neighbours is identified by counting the number ofentities within the test area 29 (FIG. 15) and dividing by the area(step S27).

[0502] Referring to FIG. 38, a process of determining whether thepreferred step is feasible is then determined (step S35)

[0503] Step-increment and neighbour counters are set (steps S35.1 &35.2) For a plurality of positions l along the step and for eachneighbour _(j + 1)^(ik)

[0504] and Δ  r_(j + 1)^(ik)

[0505] are calculated. If Δ  r_(j + 1)^(ik)

[0506] is positive, then the step is deemed not to be feasible (stepS35.3 to S35.5) This is done for each position l along the step and foreach neighbour k (steps S35.6 to S35.9). If no such neighbour is found,then the preferred step is accepted (step S35.10).

[0507] If the step is found to be unfeasible, then the second and thirdstages of micro-navigation are employed (steps S36 to S90).

[0508] An angular range over which to conduct a search is determined(steps S36 to S40), a preferred side and adjusted step length are alsodetermined (steps S41 to S57). This is described in detail earlier.Steps S41 to S57 comprise a learning and adaptation routine.

[0509] A process of conducting a search for a compromise step within asub-region 37 (FIG. 18) and determining whether potential compromisesteps are feasible is then conducted (steps S58 to 81) For eachpotential compromise step expressed in terms of a current angle θ andcurrent step length l self-dissatisfaction Δ  J_(j + 1)^(Si)

[0510] is calculated based on inconvenience and frustration However, thepreferred speed v₀ is replaced by an adjusted speed equal to the steplength l_(l, h)^(i, j)

[0511] determined in equation 81 divided by Δt. D_(j + 1)^(neighbors)

[0512] determined (step S62). This comprises looping over candidateoffending neighbours, calculating _(j + 1)^(ik)

[0513] for each in the loop, calculating V_(j + 1)^(ik)

[0514] for each in the loop and summing contributions throughout theloop so as to determine D_(j + 1)^(neighbors).  D_(j + 1)^(obstacles)

[0515] is determined (step S63) in a similar fashion. D_(j + 1)^(i)

[0516] and Δ  J_(j + 1)^(T : i)

[0517] are determined (steps S64 & S65). A step position is determined(steps S66 & S67).

[0518] A check is made whether the path of the step is intersected byanother entity (step S68 to S81). If the path of the step is intersectedby another entity, then game theory may be used to determine whether thestep is acceptable and if not whether the entity should yield bymodifying their step. If the modified step solution is rejected, thenthe search continues towards less favourable solutions. If no solutionis found, then the entity does not take a step.

[0519] The entity takes their step (step S82) Values for${\overset{\_}{\Delta \quad J}}_{j}^{T \cdot i}$

[0520] and {overscore (l)}^(l) _(j) are determined and stored (steps S83and S84), i.e. the entity “remembers” these values.

[0521] The process moves onto the next entity (step S85) and continuesfor each existing entity (step S96). Once all the entities have moved,those entities which leave the venue are removed (step S87 & S88). Theprocess moves onto the next step (step S89).

[0522] Thus, the process is repeated for each entity for each step forthe duration of the simulation (step S90). At the end of the simulation,data regarding the each entity and each step is outputted and can besaved as a file (step S91). The data can be displayed so as to show thepath of one or more of the entities as they move through the venue.

[0523] From reading the present disclosure, other variations andmodifications will be apparent to persons skilled in the art. Suchvariations and modifications may involve equivalent and other featureswhich are already known in methods of simulating movement of an entityand may be used instead of or in addition to features already describedherein. For example, many of the formulas derived above are based ondefining an action and minimizing energy-work expenditures usingvariational techniques. However, other derivations may be used, whosemethods are analogous. Furthermore, although the methods hereindescribed are suitable for simulating movement of an entity, they may beadapted for controlling and navigating entitles, such as a robot. Themethods of simulating and controlling movement of an entity are suitablefor multi-level structures. A step may be replaced by a unit oftranslation.

[0524] Although claims have been formulated in this application toparticular combinations of features, it should be understood that thescope of the disclosure of the present invention also includes any novelfeatures or any novel combination of features disclosed herein eitherexplicitly or implicitly or any generalisation thereof, whether or notit relates to the same invention as presently claimed in any claim andwhether or not it mitigates any or all of the same technical problems asdoes the present invention.

[0525] The applicants hereby give notice that new claims may beformulated to such features and/or combinations of such features duringthe prosecution of the present application or of any further applicationderived therefrom.

1. A method of simulating movement of an autonomous entity through anenvironment, the method comprising: providing a provisional path througha model of the environment from a current location to an intendeddestination; providing a profile for said autonomous entity; determininga preferred step towards said intended destination based upon saidprofile and said provisional path; determining a personal space aroundsaid autonomous entity; determining whether said preferred step isfeasible by considering whether obstructions infringe said personalspace.
 2. A method according to claim 1, wherein if the preferred stepis not feasible, then the method further comprises: determining a regionin which to seek a compromise step and determining whether at least onecompromise step is feasible
 3. A method according to claim 1, comprisingchoosing one of a plurality of compromise steps.
 4. A method accordingto claim 1, wherein determining said region includes adapting withinsaid region in dependence upon at least one locally perceivablecondition.
 5. A method according to claim 1, wherein determining saidregion includes adapting within said region in dependence upon memory ofpast conditions.
 6. A method according to claim 1, wherein thedetermining of said personal space comprises defining a region in whichabsence of obstructions is sought.
 7. A method according to claim 1,wherein obstructions include other autonomous entities.
 8. A methodaccording to claim 1, wherein obstructions include fixed obstructions.9. A method according to claim 1, wherein the determining of thepreferred step comprises determining a first dissatisfaction functioncomprising a sum of an inconvenience function and a frustrationfunction.
 10. A method according to claim 9, comprising determining theinconvenicnce function.
 11. A method according to claim 10, wherein theprovisional path includes a direction from said current location to saidintended destination and the profile includes a preferred step length,and wherein the determining of the inconvenience function includes:determining a first amount of work required to take a step of given steplength; determining a second amount of work which is a proportion ofsaid first amount of work corresponding to a component which is notdirected in said optimal direction.
 12. A method according to claim 11,wherein the determining of the inconvenience function includes:determining an acceleration associated with a change in velocity betweensaid step and a previous step and determining a third amount of workrequired to produce said acceleration.
 13. A method according to claim12, wherein the determining of the inconvenience function includessumming said second and third amounts of work.
 14. A method according toclaim 9, comprising determining the frustration function.
 15. A methodaccording to claim 14, wherein the profile includes a preferred walkingspeed and the determining of the frustration function comprises:determining a preferred instantaneous walking speed by adding saidpreferred walking speed to walking speed noise; determining a fourthamount of work dependent upon a difference between the walking speed andthe preferred instantaneous walking speed.
 16. A method according toclaim 9, wherein the determining of said preferred step comprises:minimising said first dissatisfaction in respect of step length;minimising said first dissatisfaction in respect of step orientation;thereby to obtain a preferred step length, and a preferred steporientation.
 17. A method according to claim 1, wherein the determiningwhether said preferred step is feasible comprises determining whetherthere is any discomfort arising from the entity having to keep adistance which is different from a preferred distance from anobstruction.
 18. A method according to claim 11, further comprising ifthere is discomfort arising from the entity having to keep a distancewhich is different from a preferred distance from an obstruction.
 19. Amethod according to claim 1, comprising: providing a preferred clearancetolerance for said entity; and determining a personal space around saidentity in dependence upon said clearance tolerance.
 20. A methodaccording to claim 19, comprising: determining a density of neighbouringentities and determining said personal space around said entity independence upon said clearance tolerance and said density ofneighbouring entities.
 21. A method according to claim 19, comprising:providing information relating to velocity of said entity; anddetermining an angular dependency for said personal space in dependenceupon said velocity.
 22. A method according to claim 1, wherein saidconsidering whether obstructions infringe said personal space comprises;determining whether said personal space is infringed at a first positionalong said preferred step and determining whether said personal space isinfringed at a second position along said preferred step.
 23. A methodaccording to claim 22, wherein said considering whether obstructionsinfringe said personal space further comprises: determining whether saidpersonal space is infringed at a third position along said preferredstep.
 24. A method according to claim 1, wherein if the preferred stepis not feasible, then the method further comprises: determining a regionin which to seek a compromise step.
 25. A method according to claim 24,wherein the determining of said region comprises defining an arc.
 26. Amethod according to claim 1, further comprising: determining a set ofattributes for said autonomous entity in dependence upon said profile.27. A method according to claim 26, wherein the determining of said setof attributes at least attributes comprises: determining at least oneattribute at time of generating said entity.
 28. A method according toclaim 26, further comprising: modifying at least one attribute of saidset for said autonomous entity.
 29. A computer program for performingthe method of claim
 1. 30. A computer-readable medium storing thecomputer program of claim
 29. 31. Apparatus for simulating movement ofan autonomous entity through an environment, the apparatus comprising:an interface for providing a provisional path through a model of theenvironment from a current location to an Intended destination; allinterface for providing a profile for said autonomous entity; aprocessor for determining a preferred step towards said intendeddestination based upon said profile and said provisional path; aprocessor for determining a personal space around said autonomousentity; a processor for determining whether said preferred step isfeasible by considering whether obstructions infringe said personalspace.
 32. A method of simulating movement of an autonomous entitythrough an environment, the method comprising: providing a preferredclearance tolerance for said entity; and determining a personal spacearound said entity in dependence upon said clearance tolerance.
 33. Amethod according to claim 32, comprising: determining a density ofneighbouring entities and determining said personal space around saidentity in dependence upon said clearance tolerance said density ofneighbouring entities.
 34. A method according to claim 32, comprising:providing information relating to velocity of said entity; anddetermining an angular dependency for said personal space in dependenceupon said velocity.
 35. A method of designing a building structure, themethod comprising: providing a model of said building structure;simulating movement of at least one entity through said buildingstructure, the simulating of said movement of said at least one entitycomprises providing a provisional path through a model of theenvironment from a current location to an intended destination,providing a profile for said autonomous entity, determining a preferredstep towards said intended destination based upon said profile and saidprovisional path, determining a personal space around said autonomousentity and determining whether said preferred step is feasible byconsidering whether obstructions infringe said personal space; andrevising said model of said building structure in dependence uponmovement of said at least one entity.
 36. A method of controllingmovement of an entity through an environment, the method comprising:providing a provisional path through a model of the environment from acurrent location to an intended destination; providing a profile forsaid autonomous entity; determining a preferred step towards saidintended destination based upon said profile and said provisional path;determining a personal space around said autonomous entity; determiningwhether said preferred step is feasible by considering whetherobstructions infringe said personal space.